<分区>
我有两个列表,如下所示:
list1 = ['a','a','b','b','b','c','d','e','e','g','g']
list2 = ['a','c','z','y']
我想做的是保留 list1 的所有那些也在 list2 中的元素。 结果应该是:
outcome= ['a','a','c']
<分区>
我有两个列表,如下所示:
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/