当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何根据另一个列表保留列表的元素》经验,为你挑选了2个好方法。



1> falsetru..:

使用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']



2> Bhargav Rao..:

从Python 3开始使用 itertools.filterfalse

>>> import itertools
>>> list1 = ['a','a','b','b','b','c','d','e','e','g','g']
>>> list2 = ['a','c','z','y']
>>> list(itertools.filterfalse(lambda x:x not in list2,list1))
['a', 'a', 'c']

list呼叫是必要的,因为filterfalse返回一个itertools对象.

您也可以使用该filter功能

>>> list(filter(lambda x: x in list2 , list1))
['a', 'a', 'c']

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有