我有一个数字列表,我想从中进行组合。如果我有清单:

t = [2,2,2,2,4]
c = list(itertools.combinations(t, 4))

结果是:
(2, 2, 2, 2)
(2, 2, 2, 4)
(2, 2, 2, 4)
(2, 2, 2, 4)
(2, 2, 2, 4)

但我想得到:
(2, 2, 2, 2)
(2, 2, 2, 4)

除了制作新列表和浏览第一个列表外,是否可以消除重复项?

最佳答案

当金刚指向集合时,可以通过将列表转换为集合来获取列表中的唯一值:

t = [2,2,2,2,4]
c = list(itertools.combinations(t, 4))
unq = set(c)
print(unq)

结果是:
{(2, 2, 2, 4), (2, 2, 2, 2)}

如果要将其用作列表,可以通过执行以下操作将其转换回:
result = list(unq)

另一种更清洁、更全面的方法是:
t = [2,2,2,2,4]
c = set(itertools.combinations(t, 4))

关于python - Python组合没有重复,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36429507/

10-12 06:47