【发布时间】:2018-01-23 12:42:12
【问题描述】:
我想在元组列表的排列和组合之间产生一些东西。例如,如果我有列表
list_of_tuples = [(1,20), (1,21), (2,18), (2,19)]
我想创建 3 个元组的所有可能“组合”,以便列表包含结果 [(1,20), (1,20), (1,20)] 但我认为 [(1,20), (1,20), (1,21)] 与 [(1,20), (1,21), (1,20)] 和 [(1,21), (1,20), (1,20)] 相同,并且只想保留其中之一(不管是哪一个)。
换句话说,如果“组合”包含与另一个“组合”相同的元组,我不想保留其他的。
我尝试过类似的东西
list_of_lists = [list_of_tuples]*3
results = list(itertools.product(*list_of_lists))
results = set(results)
但是通过使用 set() 我会丢失 [(1,20), (1,20), (1,20)] 以及所有其他具有相同元组的所有其他结果 3 次。
【问题讨论】:
标签: python combinatorics nested-lists