作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一串整数,例如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/
我是一名优秀的程序员,十分优秀!