
python如何多行输入多个数
用户关注问题
我想在Python程序中连续输入多行,每行有多个数字,应该怎么做?
使用循环结合input函数读取多行输入
可以通过一个循环,重复调用input()函数来读取多行数据。每次读取一行字符串后,用split()方法拆分成单个数字,再用map()或列表推导式转换成整数或浮点数。示例如下:
nums_list = []
for _ in range(行数):
line = input()
nums = list(map(int, line.split()))
nums_list.append(nums)
这样可以获得一个二维列表,存储每行输入的多个数字。
有没有简洁的Python写法,可以快速读取多行每行多个数字,且方便后续处理?
利用sys.stdin和列表推导式快速读取
导入sys模块后,可以使用sys.stdin读取全部输入,再用列表推导处理成数字列表。例如:
import sys
lines = sys.stdin.read().strip().split('\n')
nums_list = [list(map(int, line.split())) for line in lines]
这样适合输入行数不确定时读取所有数据,代码简洁且易于操作。
输入多个数字且分多行,如何快速获得一个扁平的整数列表?
用列表推导把多行多数字扁平化处理
先按行读取多行字符串,再用split拆分所有数字,最后用map转成整数,结合列表推导实现扁平化。如:
lines = []
for _ in range(行数):
lines.append(input())
all_nums = [int(num) for line in lines for num in line.split()]
这样得到的all_nums是包含所有输入数字的单个列表,方便后续计算。