如何只打印两个元组之间的差异?
>>>a=(1,2,3,4)
>>>b=(2,3,5,6)
如果元组如上,则预期输出为(1,4,5,6)
。比较函数只能比较但无法找到差异。
元组由MySQLdb
python库生成。正在执行的查询会产生大量数据。
In [13]: c.execute(query)
Out[13]: 86844L
In [14]: qop1 = c.fetchall()
In [19]: len(qop1)
Out[19]: 86844
因此,如果我将每个元组与自定义代码进行比较,则需要花费大量时间。我能像内置的python库一样有效地实现这个目标吗?
答案 0 :(得分:10)
您希望设置Symmetric Difference - 元素,但不要在交集中。这可以通过以下方式完成:
set(a) ^ set(b)
或:
set(a).symmetric_difference(set(b))
答案 1 :(得分:3)
从你的例子可以推断出你在询问集合的对称差异,而在python中你可以简单地做到
a=(1,2,3,4)
b=(2,3,5,6)
print tuple(set(a) ^ set(b))