如何在考虑元组的相反顺序的情况下比较元组列表



我有两个元组列表,ab。并且如果元组也在CCD_ 4中,我想从CCD_。

问题是如何提取元组,同时考虑其中元素的相反顺序?

例如,

a = [(0, 1), (0, 2), (3, 5), (6, 2), (8, 1), (9, 8)]
b = [(1, 0), (8, 1), (5, 3)]

在这种情况下,预期输出是(0,1), (8,1), (3,5)

您可以将每个元组转换为一个集合:

a_sets = [set(item_a) for item_a in a]
b_sets = [set(item_b) for item_b in b]

然后进行列表理解,在每个b_seta_sets中找到索引,然后使用该索引来索引到原始元组列表a:

[a[a_sets.index(b_set)] for b_set in b_sets]

输出:

[(0, 1), (8, 1), (3, 5)]

这应该可以工作,但需要一些优化

a = [(0, 1), (0, 2), (3, 5), (6, 2), (8, 1), (9, 8)]
b = [(1, 0), (8, 1), (5, 3)]
def reverseTuple(lstOfTuple):

return [tuple(reversed(tup)) for tup in lstOfTuple]

print(reverseTuple(b))
reverse_b=reverseTuple(b)
for t in a:
if t in b or t in reverse_b:
print(t)     

最新更新