从列表python

时间:2018-03-09 12:23:56

标签: python python-3.x

我有这个清单:

List = [1, 2, 3]

...我希望打印出所有可能的组合,以便输出如下:

[1]
[1,2]
[1, 2, 3]
[2]
[2, 3]
[3]

到目前为止,我的代码是:

E=[]
i=0
for seq in L[i:]:
    E.append(seq)
    i += 1
    print(E)

这给出了我的前3个输出。有没有办法让我循环它,使索引上升1,这样我可以得到我想要的输出?

编辑;所以我基本上想写一个总结了这个的代码:

List = [1, 2, 3]
E = []
F = []
G = []


for seq in List[0:]:
    E.append(seq)
    print(E)

for seq in List[1:]:
    F.append(seq)
    print(F)

for seq in List[2:]:
    G.append(seq)
    print(G)

我非常想知道我是否可以循环索引,这样我就不必创建多个for循环并可能将它应用于更长的列表。

1 个答案:

答案 0 :(得分:0)

您正在创建长度增加的组合,因此请使用长度范围为1到itertools.combinations()的{​​{1}}:

len(inputlist)

>>> from itertools import combinations >>> List = [1, 2, 3] >>> for i in range(len(List)): ... for combo in combinations(List, r=i + 1): ... print(combo) ... (1,) (2,) (3,) (1, 2) (1, 3) (2, 3) (1, 2, 3) 会产生元组,但是如果你必须为每个元组都有一个可变序列,那么这些元素很容易转换成列表。