【发布时间】:2021-03-31 19:54:49
【问题描述】:
使用set() 而非itertools 生成独特的组合。
输出一组元组,每个元组分别源自它们的调用。
相反,我现在想将此结果转换为列表。
import itertools
my_list = ['A', 'B', 'C']
pairs = set(itertools.combinations(my_list, 2))
print(pairs)
>>> {('A', 'C'), ('B', 'C'), ('A', 'B')}
相反,我想:
[['A', 'C'], ['B', 'C'], ['A', 'B']]
【问题讨论】:
-
不要使用
list作为变量名。它是用于创建列表的内置函数,您可能在这里需要它。如果列表中的元素不同,则在 itertools 的结果上调用set是没有意义的。只需在 itertools 输出上直接使用简单的列表推导即可。 -
是的,但是失败了。我也看到了很多类似的帖子,但不是这个问题。由于 set() 和 itertools 经常一起使用,我认为这个 Q&A 将是其他人复制的一个很好的资源。
-
你到底尝试了什么?
-
@juanpa.arrivillaga 列表理解循环;这是我的理想。
-
[list(i) for i in itertools.combinations(my_list, 2)]首先跳过不需要的容器,直接进入列表
标签: python list set tuples itertools