Python 获取两个元组列表之间的差异
我想根据索引号比较列表中的每个元素,即第一项与第一项、第二项与第二项,依此类推Python 获取两个元组列表之间的差异,python,Python,我想根据索引号比较列表中的每个元素,即第一项与第一项、第二项与第二项,依此类推 如果它们匹配,则不执行任何操作,如果它们不匹配,则附加到新列表。如果列表的长度与您提供的示例相同,并且您希望附加两个不匹配的元素,则可以使用: a=[(1,2),(2,3),(3,5),(4,1)] b=[(1,3),(2,3),(3,5),(4,3)] 输出: a=[(1,2),(2,3),(3,5),(4,1)] b=[(1,3),(2,3),(3,5),(4,3)] c = []
如果它们匹配,则不执行任何操作,如果它们不匹配,则附加到新列表。如果列表的长度与您提供的示例相同,并且您希望附加两个不匹配的元素,则可以使用:
a=[(1,2),(2,3),(3,5),(4,1)]
b=[(1,3),(2,3),(3,5),(4,3)]
输出:
a=[(1,2),(2,3),(3,5),(4,1)]
b=[(1,3),(2,3),(3,5),(4,3)]
c = []
for i in xrange(len(a)):
if a[i] != b[i]:
c.append(a[i])
c.append(b[i])
print c
下面是一个使用经典
for
循环的解决方案
[(1, 2), (1, 3), (4, 1), (4, 3)]
香草的:
l = []
for i in range(len(a)):
if a[i] != b[i]:
l.append(a[i])
l.append(b[i])
乐趣:
在这里,您应该学到的一般经验是,无论何时,只要您想要比较iterables元素,就使用
zip
builtin。之后的一切都是完全直接的(在普通版本中)。使用简单的列表理解:
>>> sum(([x,y] for x,y in zip(a, b) if x != y), [])
[(1, 2), (1, 3), (4, 1), (4, 3)]
看起来你想让我们为你写些代码。虽然许多用户愿意为陷入困境的程序员编写代码,但他们通常只在海报已经试图自己解决问题时才提供帮助。演示这项工作的一个好方法是包括您迄今为止编写的代码、示例输入(如果有)、预期输出和实际获得的输出(控制台输出、回溯等)。你提供的细节越多,你可能得到的答案就越多。检查和。顺便问一下,列表中是否有元组是非常不相关的。将什么附加到新列表中,
a
中的元素,b
中的元素,或者两者都附加到新列表中?使用zip
会更干净:[ai代表ai,bi在zip(a,b)中,如果ai!=bi]
。
>>> sum(([x,y] for x,y in zip(a, b) if x != y), [])
[(1, 2), (1, 3), (4, 1), (4, 3)]
a=[(1,2),(2,3),(3,5),(4,1)]
b=[(1,3),(2,3),(3,5),(4,3)]
new_list = [a[i] for i in range(len(a)) if a[i] != b[i]]