在python中将单个整数输入转换为列表
我正在寻找python中的单行命令,以将整数输入转换为列表。 情况如下在python中将单个整数输入转换为列表,python,list,input,Python,List,Input,我正在寻找python中的单行命令,以将整数输入转换为列表。 情况如下 mylist=[] mylist=list(input('Enter the numbers: ')) 如果我输入一个以上的数字,上面这一行就可以很好地工作。例1、2、3。但当我只输入一个数字时,它会出错。例:1。表示无法将整数转换为列表。 我不想运行循环,向用户询问每个输入。所以我想要一个单行命令,它可以处理用户输入的一个或多个数字,用逗号分隔 谢谢你, -indiajoe您应该使用原始输入,并将其转换为int,具有列表
mylist=[]
mylist=list(input('Enter the numbers: '))
如果我输入一个以上的数字,上面这一行就可以很好地工作。例1、2、3。但当我只输入一个数字时,它会出错。例:1。表示无法将整数转换为列表。
我不想运行循环,向用户询问每个输入。所以我想要一个单行命令,它可以处理用户输入的一个或多个数字,用逗号分隔
谢谢你,
-indiajoe您应该使用
原始输入
,并将其转换为int
,具有列表理解能力:
user_input = raw_input('Enter the numbers: ')
my_list = [int(i) for i in user_input.split(',')]
从:
raw\u input
从input读取一行,将其转换为字符串(去掉尾随的换行符),并返回该字符串。input
eval()。因此,当您键入1,2,3
时,结果是一个元组
;键入1
时,结果是int
。尝试键入1,
而不是1
。请注意,您的第一行(mylist=[]
)是不必要的。我认为您可以做的最简单的事情是:
mylist = map(int, raw_input('Enter the numbers: ').split(','))
但这与使用列表理解几乎是一样的。您也可以使用eval将字符串列表转换为int:mylist=map(eval,mylist)谢谢,但我正试图精确避免这个循环。这种常用的衬里没有一种吗?如果没有,我将继续使用这个循环方法。@SRC:在用户输入上使用eval是一种不好的做法!只有在真正需要并且经过必要的检查后,您才应该这样做。@indiajoe:无论如何,您将拥有循环,可以隐藏在地图中,但无论如何都会有!因此,在列表理解或映射(或过滤器等)之间进行选择只是一个品味问题。然而,您应该知道,在python-3中,
map
是一个生成器表达式,因此如果有一天您会发现自己正在移植自己的代码,请记住用list包装map(如果您需要一个list而不是生成器),比如list(map(…)
@RikPoggi:谢谢您为python 3提供的信息。是的,在整数后键入逗号有效。例:1,但要求用户加逗号看起来有点不整洁。或者我必须添加一个try:except:block来捕获并更正它。按照这种方法,这将起作用:mylist=list(eval(原始输入('输入数字:'))+'))
。(使用raw_输入和逗号执行eval
)。