首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >计算列表差异

计算列表差异
EN

Stack Overflow用户
提问于 2011-06-27 04:14:17
回答 11查看 295.6K关注 0票数 235

在Python中,计算两个列表之间差异的最佳方法是什么?

示例

代码语言:javascript
复制
A = [1,2,3,4]
B = [2,5]

A - B = [1,3,4]
B - A = [5]
EN

回答 11

Stack Overflow用户

发布于 2011-06-27 04:23:01

如果你不关心项目的顺序或重复,可以使用set。如果您这样做,请使用list comprehensions

代码语言:javascript
复制
>>> def diff(first, second):
        second = set(second)
        return [item for item in first if item not in second]

>>> diff(A, B)
[1, 3, 4]
>>> diff(B, A)
[5]
>>> 
票数 214
EN

Stack Overflow用户

发布于 2011-06-27 04:19:21

您可以执行以下操作

代码语言:javascript
复制
list(set(A)-set(B))

代码语言:javascript
复制
list(set(B)-set(A))
票数 72
EN

Stack Overflow用户

发布于 2011-06-27 14:07:23

一个线条:

代码语言:javascript
复制
diff = lambda l1,l2: [x for x in l1 if x not in l2]
diff(A,B)
diff(B,A)

或者:

代码语言:javascript
复制
diff = lambda l1,l2: filter(lambda x: x not in l2, l1)
diff(A,B)
diff(B,A)
票数 36
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6486450

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档