我有一个数字列表,我想从中进行组合。如果我有清单:
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/