打印两个元组之间的差异

时间:2015-04-07 12:08:16

标签: python tuples difference

如何只打印两个元组之间的差异?

 >>>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库一样有效地实现这个目标吗?

2 个答案:

答案 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))