如何根据另一个列表保留列表中的元素
我有两个看起来像的清单:
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
使用列表理解:
>>> 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']
以上是 如何根据另一个列表保留列表中的元素 的全部内容, 来源链接: utcz.com/qa/399762.html