You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python3如何根据首个输入值单行读取对应数量的列表/数组输入

Python3 单行读取指定数量空格分隔输入的实现方法

原代码问题分析

原有循环逻辑存在本质错误:for i in range(n) 会连续执行n次input()调用,而Python中每调用一次input()就会阻塞等待用户输入一整行内容,因此读完第二行的数值后,剩余循环次数还会继续要求用户输入新行,完全不符合「仅读一行拿全部n个元素」的需求。

正确实现代码

不需要写循环,只需要两次input()调用即可:第一次读n,第二次读整行数值转列表:

# 读取第一行的元素总个数
n = int(input())
# 读取第二行整行内容,按空格分割后转整数组成列表
num_list = list(map(int, input().split()))

可选:输入合法性校验

如果需要确保输入的元素个数和n完全匹配,可以追加校验逻辑:

n = int(input())
num_list = list(map(int, input().split()))
if len(num_list) != n:
    raise ValueError(f"输入不合法,应输入{n}个空格分隔的数值")

逻辑说明

  • 不带参数的str.split()方法会自动处理任意数量的空格、制表符分隔,也会自动忽略行首行尾的空白字符,不需要额外处理格式问题。
  • map(int, ...)会把分割得到的每个字符串转成整数,外层套list()就能直接得到需要的数组/列表结构。

对应给出的测试用例运行效果:

  • 输入示例1:第一行输2,第二行输1 2,最终num_list值为[1, 2]
  • 输入示例2:第一行输3,第二行输3 5 8,最终num_list值为[3, 5, 8]
  • 输入示例3:第一行输4,第二行输6 8 7 9,最终num_list值为[6, 8, 7, 9]

内容的提问来源于stack exchange,提问作者noob at math

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 18:36:23