我有两个元组列表,a
和b
。并且如果元组也在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_set
的a_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)