Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中将单个整数输入转换为列表_Python_List_Input - Fatal编程技术网

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

在python中将单个整数输入转换为列表,python,list,input,Python,List,Input,我正在寻找python中的单行命令,以将整数输入转换为列表。 情况如下 mylist=[] mylist=list(input('Enter the numbers: ')) 如果我输入一个以上的数字,上面这一行就可以很好地工作。例1、2、3。但当我只输入一个数字时,它会出错。例:1。表示无法将整数转换为列表。 我不想运行循环,向用户询问每个输入。所以我想要一个单行命令,它可以处理用户输入的一个或多个数字,用逗号分隔 谢谢你, -indiajoe您应该使用原始输入,并将其转换为int,具有列表

我正在寻找python中的单行命令,以将整数输入转换为列表。 情况如下

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
)。