如何在Python中按值删除多个列表项

时间:2018-12-23 08:46:23

标签: python list

我有一个这样的列表:

a = ['a','b','c','f','w','r','q']

我想做这样的事情:

b = a.remove['a','b','q']

在删除某些元素的同时将a的所有值传输到b变量。

3 个答案:

答案 0 :(得分:3)

列表理解:

>>> a = ['a','b','c','f','w','r','q']
>>> b = [x for x in a if x not in ['a','b','q']]
>>> b
['c', 'f', 'w', 'r']

或者,如果您的值唯一且顺序无关紧要,则可以使用集合:

>>> set(a) - set(['a','b','q'])
{'c', 'r', 'w', 'f'}

答案 1 :(得分:1)

您可以按以下方式使用列表理解:

b = [
    value
    for value in a 
    if value not in ['a', 'b', 'c']
]

如果您的排除列表很大,请使用set

答案 2 :(得分:0)

为什么不使用要删除的值创建单独的列表,然后在第二个列表中循环使用,然后从第一个列表中删除该项目。

b = ['a', 'b', 'q']
for i in b:
    if i in a:
        a.remove(i)