【问题标题】:How do I iterate through combinations of a list [duplicate]如何遍历列表的组合[重复]
【发布时间】:2017-01-16 16:03:21
【问题描述】:

我有一个元素列表,比如说

list = [1, 2, 3, 4]

我想遍历这个列表的几个不同元素,所以

for x, y in some_iterator(list):
    print x, y

应该显示

1 2
1 3
1 4
2 3
2 4
3 4

请注意,我不希望 list 的所有组合都像 this question 那样。只是给定长度的组合。

最pythonic的方法是什么?


如果我想对 n-uples 做同样的事情怎么办?例如,3 元素的组合来自 n

for x, y, z in another_iterator(list):
    print x, y, z

会显示

1 2 3
1 2 4
2 3 4

【问题讨论】:

    标签: python list iterator


    【解决方案1】:

    使用itertools.combinations:

    from itertools import combinations
    
    for combo in combinations(lst, 2):  # 2 for pairs, 3 for triplets, etc
        print(combo)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-08
      • 2020-02-21
      • 2014-07-06
      • 1970-01-01
      • 1970-01-01
      • 2019-06-15
      • 1970-01-01
      • 2019-11-16
      相关资源
      最近更新 更多