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

如何从多行输入生成多个列表?已尝试for循环未成功

问题分析

你的代码存在三个核心问题:

  1. 错误将第一行数据当作行数n和参数s,导致第一行数据未被处理,且循环次数与实际待处理行数不匹配
  2. 每次循环用新行数据覆盖lst变量,最终仅保留最后一行结果
  3. 仅打印一次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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 00:42:26