如何在嵌套元组中获得唯一的对组合?

How to get unique combinations of pairs in nested tuples?

我有一个 [(tuple1), (tuple2)] 形式的对列表,其中第一个元组的长度可变,第二个元组的长度为 1。

示例:

[((0, 1, 2), 0), 
((3, 4, 5), 0), 
((12,), 1), 
((0, 1, 4, 7), 1), 
((12,), 1),
((3, 4, 5), 0)]

我想要 set(pairs),其中 tuple1_pair_X = tuple1_pair_Y && tuple2_pair_X = tuple2_pair_Y 而不是 tuple1 元素与 tuple2 的所有可能组合。

期望的输出:

[((0, 1, 2), 0), 
((3, 4, 5), 0), 
((12,), 1), 
((0, 1, 4, 7), 1)] 

我想简单地在元组的原始列表上使用 set() 命令应该可以工作并提供您想要的输出。

tup_list = [((0, 1, 2), 0), ((3, 4, 5), 0),((12,), 1),((0, 1, 4, 7), 1),((12,), 1),((3, 4, 5), 0)]
output = list(set(tup_list))

如果您想保持列表顺序:

lst = [((0, 1, 2), 0), 
((3, 4, 5), 0), 
((12,), 1), 
((0, 1, 4, 7), 1), 
((12,), 1),
((3, 4, 5), 0)]

sorted(set(lst), key=lst.index)

输出:

[((0, 1, 2), 0), 
((3, 4, 5), 0), 
((12,), 1), 
((0, 1, 4, 7), 1)]