给定一个由一组有限元素组成的可迭代对象:


  (A B C D)


举个例子

从上述可迭代项生成以下(伪)有序对的Pythonic方法是什么:

ab
ac
ad
bc
bd
cd


一种简单的方法是使用循环,但是我想知道是否存在一种通过上面的可迭代方法生成此列表的pythonic方法?

最佳答案

尝试使用combinations

import itertools
combinations = itertools.combinations('abcd', n)


将为您提供一个迭代器,您可以对其进行循环或使用list(combinations)将其转换为列表

为了像示例中那样仅包含对,可以将2作为参数传递:

combinations = itertools.combinations('abcd', 2)

>>> print list(combinations)
[('a', 'b'), ('a', 'c'), ('a', 'd'), ('b', 'c'), ('b', 'd'), ('c', 'd')]

10-05 23:32