Skip to main content
 首页 » 编程设计

从可迭代对象(例如列表或集合)生成伪有序对列表的 Pythonic 方法

2024年08月19日34zengkefu

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

(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')]