如何从多行输入生成多个列表?已尝试for循环未成功
问题分析
你的代码存在三个核心问题:
- 错误将第一行数据当作行数
n和参数s,导致第一行数据未被处理,且循环次数与实际待处理行数不匹配 - 每次循环用新行数据覆盖
lst变量,最终仅保留最后一行结果 - 仅打印一次
lst,没有逐行输出所有转换后的列表
解决方案
方案1:处理所有输入行(无需提前指定行数)
适用于你的示例场景,所有输入行都是需要转换的数据:
while True: try: line = input().strip() if not line: continue num_list = list(map(int, line.split())) print(num_list) except EOFError: break
运行后输入示例中的6行数据,即可得到预期的列表格式输出。
方案2:先指定行数再处理数据
如果需要先输入行数(比如第一行表示后续待处理的行数),可使用此版本:
n = int(input()) for _ in range(n): line = input().strip() num_list = list(map(int, line.split())) print(num_list)
修正你原代码的版本
若坚持保留原代码结构,同时处理第一行数据,可调整为:
# 处理第一行数据 first_row = list(map(int, input().split())) print(first_row) # 第一行第一个数作为后续行数 n = first_row[0] # 处理剩余n行 for _ in range(n): row = list(map(int, input().split())) print(row)
内容的提问来源于stack exchange,提问作者VKUOJ
相关产品推荐
相关产品推荐

