首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python在一个列表中查找不在另一个列表中的元素

Python在一个列表中查找不在另一个列表中的元素
EN

Stack Overflow用户
提问于 2016-12-14 00:26:02
回答 7查看 270.5K关注 0票数 216

我需要比较两个列表,以便创建在一个列表中找到但在另一个列表中找不到的特定元素的新列表。例如:

代码语言:javascript
运行
复制
main_list=[]
list_1=["a", "b", "c", "d", "e"]
list_2=["a", "f", "c", "m"] 

我想遍历list_1,并将list_2中在list_1中找不到的所有元素附加到main_list中。

结果应该是:

代码语言:javascript
运行
复制
main_list=["f", "m"]

我怎么用python做到这一点呢?

EN

回答 7

Stack Overflow用户

发布于 2016-12-14 00:27:48

您可以使用集合:

代码语言:javascript
运行
复制
main_list = list(set(list_2) - set(list_1))

输出:

代码语言:javascript
运行
复制
>>> list_1=["a", "b", "c", "d", "e"]
>>> list_2=["a", "f", "c", "m"]
>>> set(list_2) - set(list_1)
set(['m', 'f'])
>>> list(set(list_2) - set(list_1))
['m', 'f']

根据@JonClements的评论,这里是一个更整洁的版本:

代码语言:javascript
运行
复制
>>> list_1=["a", "b", "c", "d", "e"]
>>> list_2=["a", "f", "c", "m"]
>>> list(set(list_2).difference(list_1))
['m', 'f']
票数 289
EN

Stack Overflow用户

发布于 2017-07-10 22:49:27

不确定为什么当你有原生方法时,上面的解释会如此复杂:

代码语言:javascript
运行
复制
main_list = list(set(list_2)-set(list_1))
票数 78
EN

Stack Overflow用户

发布于 2016-12-14 00:31:17

代码语言:javascript
运行
复制
main_list=[]
list_1=["a", "b", "c", "d", "e"]
list_2=["a", "f", "c", "m"]

for i in list_2:
    if i not in list_1:
        main_list.append(i)

print(main_list)

输出:

代码语言:javascript
运行
复制
['f', 'm']
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41125909

复制
相关文章

相似问题

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