如何在python中将数字转换为数字列表?

如何在python中将数字转换为数字列表?,python,Python,可能重复: 我目前有: c = eval(input("Enter a group of numbers ")) #say someone types 123 print (c) #prints out 123 我想要这个: c = eval(input("Enter a group of numbers ")) #say they enter 123 print (c) #prints out [1,2,3] 我希望123最终成为[1,2,3]。我该怎么做 In [32]: c=raw_

可能重复:

我目前有:

c = eval(input("Enter a group of numbers "))
#say someone types 123
print (c)
#prints out 123
我想要这个:

c = eval(input("Enter a group of numbers "))
#say they enter 123
print (c)
#prints out [1,2,3]
我希望
123
最终成为
[1,2,3]
。我该怎么做

In [32]: c=raw_input()
123

In [33]: map(int,c)
Out[33]: [1, 2, 3]
如果输入类似于
1 2 3
,请使用
split()

In [37]: c=raw_input()
1 2 3

In [38]: map(int,c.split())
Out[38]: [1, 2, 3]
如果输入类似于
1 2 3
,请使用
split()

In [37]: c=raw_input()
1 2 3

In [38]: map(int,c.split())
Out[38]: [1, 2, 3]

您可以使用
map()
将数字转换为
int
s:


您可以使用
map()
将数字转换为
int
s:

怎么样

c = [int(x) for x in input("Enter a group of numbers ")]
#list comprehension over the input function
输入123,结果为[1,2,3]

好的,假设Python2.x(输入返回一个int对象)

怎么样

c = [int(x) for x in input("Enter a group of numbers ")]
#list comprehension over the input function
输入123,结果为[1,2,3]

好的,假设Python2.x(输入返回一个int对象)


可以将其转换为字符串,然后将字符串中的每个字符转换为数字


myStr = str(myInt)
out = [int(i) for i in myStr]

可以将其转换为字符串,然后将字符串中的每个字符转换为数字


myStr = str(myInt)
out = [int(i) for i in myStr]

首先,以下几点:

c = eval(input("Enter a group of numbers "))
同:

c = eval(eval(raw_input("Enter a group of numbers ")))
你现在打了两次电话给eval。可以找到有关的更多信息

这是您想要的解决方案:

c = raw_input("Enter a group of numbers "))
c = [int(i) for i in c]
print(c)

当然,您可以将上面的示例缩减为两行(甚至一行)。

首先,以下内容:

c = eval(input("Enter a group of numbers "))
同:

c = eval(eval(raw_input("Enter a group of numbers ")))
你现在打了两次电话给eval。可以找到有关的更多信息

这是您想要的解决方案:

c = raw_input("Enter a group of numbers "))
c = [int(i) for i in c]
print(c)
当然,您可以将上面的示例缩减为两行(甚至实际上只有一行)。

您通常不应该在用户输入中使用。有人可以键入一个将评估为恶作剧的语句

出于同样的原因,您应该避免使用,因为它相当于
eval(raw_input())
也可能导致恶意破坏——不管是有意还是无意

但是,您可以通过以下方法将用户输入的Python解释安全地导入Python数据结构:

(在每种情况下,
>>键入Python输入:
后的第一行是我在
原始输入()中键入的内容。

如果要拆分数字,可以执行以下操作:

>>> [int(c) for c in raw_input() if c in '1234567890']
1234
[1, 2, 3, 4]
>>> [int(c) for c in raw_input() if c in '1234567890']
123a45
[1, 2, 3, 4, 5]
请注意,非数字已被过滤。

您通常不应在用户输入中使用。有人可以键入一条语句,该语句将评估为恶作剧

出于同样的原因,您应该避免使用,因为它相当于
eval(raw_input())
也可能导致恶意破坏——不管是有意还是无意

但是,您可以通过以下方法将用户输入的Python解释安全地导入Python数据结构:

(在每种情况下,
>>键入Python输入:
后的第一行是我在
原始输入()中键入的内容。

如果要拆分数字,可以执行以下操作:

>>> [int(c) for c in raw_input() if c in '1234567890']
1234
[1, 2, 3, 4]
>>> [int(c) for c in raw_input() if c in '1234567890']
123a45
[1, 2, 3, 4, 5]

请注意,非数字被过滤。

不要使用
eval
。另外,如果您使用的是python 2,不要使用
input
。这两种方法都会导致任意代码执行漏洞。我知道每个人都喜欢easy rep,但对于高质量的问答,常见问题确实需要关闭,而不是每次都用十几个相同的答案来回答。确实如此不要使用
eval
。另外,如果您使用的是python 2,不要使用
input
。这两种方法都会导致任意代码执行漏洞。我知道每个人都喜欢easy rep,但对于高质量的问答,常见的问题确实需要关闭,而不是每次都用十几个相同的答案来回答。这在python 2中不起作用。x@AshwiniChaudhary:会的。我刚刚用Python 2.6测试了它。我很高兴它对您有用。@Blender不,不会的,
input()
将在Python2.x中返回一个整数,for循环将引发错误:
TypeError:“int”对象不可编辑
@AshwiniChaudhary:糟糕,我测试了一些稍有不同的东西。这在Python2中不起作用。x@AshwiniChaudhary:会的。我刚刚用Python 2.6测试了它。我很高兴它对您有用。@Blender不,不会的,
input()
将在Python2.x中返回一个整数,for循环将引发错误:
TypeError:“int”对象不可编辑
@AshwiniChaudhary:我的错,我测试了一些稍有不同的东西。