将单个整数输入转换为python中的列表
我想要一个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(','))
不过这和使用列表推导式几乎是一样的。