给定一个由有限元素集组成的可迭代对象:
(a, b, c, d)
举个例子
从上面的可迭代生成以下(伪)有序对的 Pythonic 方法是什么:
ab
ac
ad
bc
bd
cd
一个简单的方法是使用 for 循环,但我想知道是否有一种 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')]
关于从可迭代对象(例如列表或集合)生成伪有序对列表的 Pythonic 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47186849/