如何在Python中将没有空格的字符串分割成整数列表?

12
我接受一串整数作为输入,其中没有空格或任何分隔符:
12345

现在我希望将这个字符串转换为单个数字列表

[1,2,3,4,5]

我尝试过两种方法

numlist = map(int,input().split(""))

numlist = map(int,input().split(""))

两个函数都给我返回空分隔符错误。是否有其他的函数可以执行这个任务?

4个回答

21

在这里您不需要使用split:

>>> a = "12345"    
>>> map(int, a)
[1, 2, 3, 4, 5]

字符串也是可迭代的

对于 Python 3x:

list(map(int, a))

2
这正是我所需要的。它完美地满足了我的目的。我的问题被标记为重复,但在另一个问题中,没有答案解释如何像这个答案一样拆分输入。请注意一下,@Carsten。 - iammrmehul

5
使用列表推导式。
>>> s = "12345"
>>> [int(i) for i in s]
[1, 2, 3, 4, 5]

喜欢这个。非常有表现力。 - Drumbeg

1
答案很出色。以下是使用正则表达式的方法。
>>> import re
>>> s = '12345'
>>> re.findall(r'\d',s)
['1', '2', '3', '4', '5']

参考 - 正则表达式文档

为什么要在所有情况下使用正则表达式?


-3

你也可以使用

>>> range(1,6)
[1, 2, 3, 4, 5]

这个不能直接从字符串转换... - DNA
它正在获取字符串的位置... - avinash pandey
我想要输入一个值。 - iammrmehul
哦,是的。你说得对,但如果这样做可以用作解决方法。 - Ishikawa Yoshi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接