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

Python中接收多个用户输入并存入列表的高效实现方法咨询

Python 批量接收多值输入并存储为数字列表的解决方案

报错原因说明

你之前写的x = list(input('Enter 10 numbers '))会直接将输入的整行字符串按单个字符拆分,例如输入1 2 3时,拆分结果为['1', ' ', '2', ' ', '3'],转换int时遇到空格字符就会抛出invalid literal for int() with base 10错误。
另外你对split方法的使用存在误区:使用split拆分后不需要逐个定义变量接收,可以直接批量转换后存入列表。

可行实现方案

1. 基础一行式实现(空格分隔输入)

默认适配用户用空格分隔多个输入的场景,代码如下:

# 写法1:map函数实现
num_list = list(map(int, input("请输入10个数字,用空格分隔:").split()))

# 写法2:列表推导式实现,逻辑更直观
num_list = [int(i) for i in input("请输入10个数字,用空格分隔:").split()]

如果需要适配逗号、分号等其他分隔符,修改split的参数即可,例如逗号分隔的场景写为split(','),同时如果用户输入可能带空格,可以加strip处理:

num_list = [int(i.strip()) for i in input("请输入10个数字,用逗号分隔:").split(',')]

2. 带校验的鲁棒性实现

如果需要严格控制输入为10个合法数字,避免用户输入数量不对、存在非数字内容的问题,可以加循环校验:

while True:
    input_seg = input("请输入10个数字,用空格分隔:").split()
    # 校验输入数量
    if len(input_seg) != 10:
        print(f"仅需输入10个数字,当前输入了{len(input_seg)}个,请重新输入")
        continue
    # 校验输入内容是否为合法数字
    try:
        num_list = [int(i) for i in input_seg]
        break
    except ValueError:
        print("输入内容包含非数字,请重新输入")

print("最终得到的数字列表:", num_list)

内容的提问来源于stack exchange,提问作者gis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 19:51:02