python - 如何根据另一个列表保留列表的元素

标签 python list filter

<分区>

我有两个列表,如下所示:

list1 = ['a','a','b','b','b','c','d','e','e','g','g']

list2 = ['a','c','z','y']

我想做的是保留 list1 的所有那些也在 list2 中的元素。 结果应该是:

outcome= ['a','a','c']

最佳答案

使用 in 运算符,您可以检查元素是否在序列中。

>>> list2 = ['a','c','z','y']
>>> 'x' in list2
False
>>> 'y' in list2
True

使用 list comprehension :

>>> list1 = ['a','a','b','b','b','c','d','e','e','g','g']
>>> list2 = ['a','c','z','y']
>>> [x for x in list1 if x in list2]
['a', 'a', 'c']

但是 x in list 效率不高。您最好将 list2 转换为 set对象。

>>> set2 = set(list2)
>>> [x for x in list1 if x in set2]
['a', 'a', 'c']

关于python - 如何根据另一个列表保留列表的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34288403/

相关文章:

python - 在 sqlalchemy 中设置默认值

java - 将python文件+所有依赖项+解释器编译成一个java\.net(dll或exe)文件?

python - 从 Python 中的项目列表生成元组

java - 如何在 Android 中为输入音频实现 IIR 带通滤波器

python - 包含 Pandas 中的函数

python - python Elasticsearch难以从SQL转换为请求的ES格式

javascript - 如何输入要在函数中使用的变量

python - 如何浏览股票代码列表来更新数据框

c - 使用 grep/sort 删除一行中的多个换行符

WordPress:the_content 过滤器杀死了画廊短代码