簡體   English   中英

Python中兩組元組的區別

[英]Difference of two sets of tuples in Python

我有兩組元組ab

a = set([(1,'a'),(34,'b'), (82,'c')])
b = set([(8,'a'),(98,'c')])

我想要一套c

c = set([(34,'b')])

在python中執行此操作的最有效方法是什么?

我猜O(n)是最有效的:

>>> b2 = {x for n,x in b}
>>> c = {(n,x) for (n,x) in a if x not in b2}
>>> c
{(34, 'b')}

我首先使用dicts代替a和b的集合:

a = {k: v for (v, k) in a}
b = {k: v for (v, k) in b}

然后,它只是取a不在b

print [(k, a[k]) for k in set(a.keys()) - set(b.keys())]

要么

b_keys = set(b.keys())
print [(k,v) for (k,v) in a.items() if k not in b_keys}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM