在Python中,实现一行输入多个数据的方法主要包括以下四种,具体选择可根据输入格式和需求决定:
一、使用 split()
方法(默认按空格分隔)
这是最基础的方法,适用于以空格分隔的输入场景。
# 示例代码
input_str = input("请输入多个值,用空格分隔:").split()
print(input_str) # 输出: ['10', '20', '30']
若需转换为整数,可结合 map()
或列表推导式:
# 转换为整数列表
nums = [int(x) for x in input().split()]
print(nums) # 输出: [10, 20, 30]
二、使用 map()
函数
适用于需要快速转换数据类型的场景,支持指定分隔符(如逗号)。
# 示例代码(空格分隔)
nums = list(map(int, input().split()))
print(nums) # 输出: [10, 20, 30]
# 示例代码(逗号分隔)
a, b, c = map(int, input().split(','))
print(a, b, c) # 输出: 10 20 30
三、使用列表推导式
语法简洁,适合单行转换操作。
# 示例代码
nums = [int(x) for x in input().split()]
print(nums) # 输出: [10, 20, 30]
四、使用 sys.stdin.read()
(适用于批量输入)
适合处理大量数据或特定分隔符(如换行符)。
import sys
# 示例代码(按换行符分隔)
for line in sys.stdin:
print(line.strip().split())
注意事项
-
输入类型 :
input()
返回字符串,需通过split()
、map()
或列表推导式转换为目标类型。 -
分隔符选择 :默认
split()
按空格,若输入以逗号分隔,需指定split(',')
。 -
错误处理 :建议添加异常处理(如
try-except
)以应对非数字输入。
以上方法可根据实际需求灵活选择,建议优先使用 split()
结合 map()
或列表推导式,兼顾简洁性和效率。