给定一个由一组有限元素组成的可迭代对象:
(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')]