【发布时间】:2020-08-03 05:40:25
【问题描述】:
我正在尝试创建每个元素都属于列表 i 的列表,但是使用下面的当前代码,我得到了一个不好的结果。
from itertools import combinations
x = 'ABCDABC'
y = [''.join(l) for i in range(len(x)) for l in combinations(x, i+1)]
z = []
for i in y:
if i in x:
z.append(i)
w = sorted(list(set(z)))
def Sorting(lst):
lst.sort(key=len)
return lst
final = 0
for i in range(len(z)):
c = []
for j in z:
if len(j) == i:
c.append(j)
print(c)
结果:
[]
['A', 'B', 'C', 'D', 'A', 'B', 'C']
['AB', 'AB', 'BC', 'BC', 'CD', 'DA', 'AB', 'BC']
['ABC', 'ABC', 'ABC', 'BCD', 'CDA', 'DAB', 'ABC']
['ABCD', 'BCDA', 'CDAB', 'DABC']
['ABCDA', 'BCDAB', 'CDABC']
['ABCDAB', 'BCDABC']
['ABCDABC']
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
它应该在哪里:
['A', 'B', 'C', 'D', 'A', 'B', 'C']
['AB', 'AB', 'BC', 'BC', 'CD', 'DA', 'AB', 'BC']
['ABC', 'ABC', 'ABC', 'BCD', 'CDA', 'DAB', 'ABC']
['ABCD', 'BCDA', 'CDAB', 'DABC']
['ABCDA', 'BCDAB', 'CDABC']
['ABCDAB', 'BCDABC']
['ABCDABC']
这样我可以进一步操作
【问题讨论】:
标签: python-3.x list loops unique list-comprehension