Python中两组元组的区别

Ujj*_*yan 3 python python-2.7

我有两组元组ab.

a = set([(1,'a'),(34,'b'), (82,'c')])
b = set([(8,'a'),(98,'c')])
Run Code Online (Sandbox Code Playgroud)

我想要一套c这样的

c = set([(34,'b')])
Run Code Online (Sandbox Code Playgroud)

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

wim*_*wim 5

我猜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')}
Run Code Online (Sandbox Code Playgroud)