将单个整数输入转换为python中的列表

2 投票
3 回答
9893 浏览
提问于 2025-04-17 10:43

我想要一个Python中的单行命令,把输入的整数转换成列表。以下是我的情况。

mylist=[]
mylist=list(input('Enter the numbers: '))

如果我输入多个数字,比如1,2,3,这行代码运行得很好。但是如果我只输入一个数字,比如1,它就会报错,提示不能把一个整数转换成列表。我不想用循环来逐个询问用户的输入。所以我想要一个可以处理用户输入的单个数字或多个数字(用逗号分隔)的单行命令。

谢谢你,
-indiajoe

3 个回答

1

input eval() 是你输入的内容。所以,当你输入 1,2,3 时,结果会是一个 tuple(元组);而当你输入 1 时,结果就是一个 int(整数)。试着输入 1, 而不是 1。注意,你的第一行 (mylist=[]) 是不必要的。

3

你应该使用 raw_input 来获取输入,然后用列表推导式把它转换成 int(整数)。

user_input = raw_input('Enter the numbers: ')
my_list = [int(i) for i in user_input.split(',')]

根据官方文档的说明:raw_input 会读取一行输入,把它转成字符串(去掉末尾的换行符),然后返回这个字符串。

3

我觉得你可以做的最简单的事情就是:

mylist = map(int, raw_input('Enter the numbers: ').split(','))

不过这和使用列表推导式几乎是一样的。

撰写回答