python - 将整数字符串拆分为所有可能的数字列表

标签 python string list python-3.x split

我有一串整数,例如s = "1234" 我想将其拆分为整数的各个顺序组合 split = [ 1234, 1, 2, 3, 4, 12, 123, 23, 234, 34 ] 我如何用 Python 编写这个代码?

我尝试过:

for i in range(0,len(number)-1):
x =["" + number[j] for j in range(i, len(number))]
print(x)

输出:

['1', '2', '3', '4', '5']
['2', '3', '4', '5']
['3', '4', '5']
['4', '5']

最佳答案

您可以使用combinations来自itertools库结合 list comprehension :

>>> from itertools import combinations
>>> s = "1234"
>>> [int(''.join(x)) for i in range(len(s)) for x in combinations(s, i + 1)]
[1, 2, 3, 4, 12, 13, 14, 23, 24, 34, 123, 124, 134, 234, 1234]

更新 由于您只需要顺序组合,因此可以使用字符串中的所有子字符串(使用 How To Get All The Contiguous Substrings Of A String In Python? ):

>>> l = len(s)
>>> [int(s[i:j+1]) for i in range(l) for j in range(i,l)]
[1, 12, 123, 1234, 2, 23, 234, 3, 34, 4]

关于python - 将整数字符串拆分为所有可能的数字列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41589617/

相关文章:

Python:检查列表的最后一个值是否多次出现

python - Django 检查用户何时创建

python - 为 Django REST 框架 API 客户端指定基本身份验证凭据

python - 导入错误: The version of cryptography does not match the loaded shared object

c++ - 函数式转换与构造函数

c - while(true) 之前的 printf 消失

Python:附加一个产生列表的函数?

python - 单击按钮后更改模型字段值

cJson如何计算打印缓冲区的长度

python - 删除嵌套列表中的列时列表分配索引超出范围