【问题标题】:compare two lists in python and print the difference [duplicate]比较python中的两个列表并打印差异[重复]
【发布时间】:2016-02-18 22:24:36
【问题描述】:

我有两个列表,我想打印它们之间的差异(如果有 1 个差异,它应该打印“1”。我该如何解决这个问题?

所以我拥有的是:

a= ["1","2","3"]
b= ["1","4","5"]

答案应该是2。

【问题讨论】:

  • a=["x","y"] 和 b=["y","x"] 你想要什么?

标签: python list


【解决方案1】:

这取决于你所说的差异是什么意思。如果它们的长度相等并且您想找出差异,请执行以下操作:

c = [i for i in a if i not in b]
print len(c)

【讨论】:

  • 我的意思是这样的区别:A= ["Hai", "Bye", "Python"] B= ["Hai", "Different11", "different"] --> 它应该返回“2”(因为:列表在 2 个值上不同)
  • 你试过我的代码了吗?它对你有用吗?
  • 是的,我试过了,但是没用(结果是0,但应该是1)
  • 你用了什么例子?
  • 对不起我的错误。它有效!
【解决方案2】:

使用set

print len(set(L1) - set(L2)) 

测试:

>>> L1 = [1,2,5]
>>> L2 = [8,1]
>>> len(set(L1) - set(L2))
2

【讨论】:

  • 我的意思是这样的区别:A= ["Hai", "Bye", "Woly"] B= ["Hai", "Bye", "different"] --> 它应该返回“1”
  • 使用 WoLy 的解决方案,只需打印 len(r)。或者,如果您需要对称差异,您可以使用 r = list(set(L1) ^ set(L2))
  • @Loesje 检查我的编辑。它更快。
猜你喜欢
  • 1970-01-01
  • 2013-04-25
  • 2019-05-15
  • 1970-01-01
  • 1970-01-01
  • 2019-08-03
  • 2016-12-24
  • 2023-02-25
  • 1970-01-01
相关资源
最近更新 更多