我在python中寻找单行命令将整数输入转换为list。 以下是这种情况。
mylist=[]
mylist=list(input('Enter the numbers: '))
如果我输入多个数字,则上述行完美无缺。例如1,2,3。但是当我只给出一个数字条目时它会给出错误。例如:1。说它无法将整数转换为列表。 我不想运行一个循环询问用户的每个输入。所以我想要一个单行命令,它可以用于由逗号分隔的用户给出的一个或更多数字输入。
感谢你, -indiajoe
答案 0 :(得分:3)
您应该使用raw_input
并使用列表理解转换为int
:
user_input = raw_input('Enter the numbers: ')
my_list = [int(i) for i in user_input.split(',')]
从offical documentation:raw_input
从输入中读取一行,将其转换为字符串(剥离尾随换行符),然后返回。
答案 1 :(得分:3)
我认为你能做的最简单的事情是:
mylist = map(int, raw_input('Enter the numbers: ').split(','))
但它与使用列表理解几乎相同。
答案 2 :(得分:1)
input
eval()
是您键入的内容。因此,当您输入1,2,3
时,结果为tuple
;键入1
时,结果为int
。尝试输入1,
而不是1
。请注意,您的第一行(mylist=[]
)是不必要的。