我有两个元组集合a
和b
。
a = set([(1,'a'),(34,'b'), (82,'c')])
b = set([(8,'a'),(98,'c')])
我想要一个集合c
,使得
c = set([(34,'b')])
什么是在Python中执行此操作的最有效方法?
我有两个元组集合a
和b
。
a = set([(1,'a'),(34,'b'), (82,'c')])
b = set([(8,'a'),(98,'c')])
我想要一个集合c
,使得
c = set([(34,'b')])
>>> b2 = {x for n,x in b}
>>> c = {(n,x) for (n,x) in a if x not in b2}
>>> c
{(34, 'b')}
a = {k: v for (v, k) in a}
b = {k: v for (v, k) in b}
然后,只需要获取不在b
中的a
的内容即可。
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}
set(b.keys())
。 - user2357112
{k: v for (v, k) in a}
。 - njzk2