【问题标题】:How to split string without spaces into list of integers in Python? [duplicate]如何在Python中将不带空格的字符串拆分为整数列表? [复制]
【发布时间】:2015-04-02 09:18:22
【问题描述】:

我将一串整数作为输入,并且没有空格或任何类型的分隔符:

12345

现在我想将此字符串转换为单个数字的列表

[1,2,3,4,5]

我都试过了

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

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

他们都给了我 Empty Separator 错误。还有其他功能可以执行此任务吗?

【问题讨论】:

    标签: python python-3.x


    【解决方案1】:

    使用 list_comprehension。

    >>> s = "12345"
    >>> [int(i) for i in s]
    [1, 2, 3, 4, 5]
    

    【讨论】:

    • 喜欢这个。很有表现力。
    【解决方案2】:

    这里不需要使用split:

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

    字符串也是可迭代的

    对于 python 3x:

    list(map(int, a))
    

    【讨论】:

    • 这就是我想要的。这完全符合我的目的。我的问题被标记为重复,但在另一个问题中,没有答案解释了如何在这个答案中拆分输入。请注意@Carsten。
    【解决方案3】:

    你也可以使用

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

    【讨论】:

    • 虽然不是从字符串转换...
    • 字符串在哪里...
    • 我要输入数据
    • 哦,是的。你是对的,但如果是这样,它可以用作解决方法
    【解决方案4】:

    答案很精彩。这是一种使用正则表达式的方法

    >>> import re
    >>> s = '12345'
    >>> re.findall(r'\d',s)
    ['1', '2', '3', '4', '5']
    

    参考 - Docs on Regex

    为什么对所有事情都使用正则表达式?

    【讨论】:

      猜你喜欢
      • 2018-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-05
      • 2021-12-07
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      相关资源
      最近更新 更多