Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中按值删除多个列表项_Python_List - Fatal编程技术网

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

如何在Python中按值删除多个列表项,python,list,Python,List,我有这样一份清单: a=['a','b','c','f','w','r','q'] 我想这样做: b=a.remove['a','b','q'] 删除某些元素时,将a的所有值转移到b变量。您可以使用列表理解,如下所示: b = [ value for value in a if value not in ['a', 'b', 'c'] ] 如果排除列表很大,请使用set。为什么不创建一个包含要删除的值的单独列表,然后使用循环遍历第二个列表并从第一个列表中删除该项 b

我有这样一份清单:

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

我想这样做:

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


删除某些元素时,将
a
的所有值转移到
b
变量。

您可以使用列表理解,如下所示:

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

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

为什么不创建一个包含要删除的值的单独列表,然后使用循环遍历第二个列表并从第一个列表中删除该项

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

>>> 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'}

仅通过迭代并逐个比较值。此外,要使用
set
s,值应该是可散列的