我有一个这样的列表:
a = ['a','b','c','f','w','r','q']
我想做这样的事情:
b = a.remove['a','b','q']
在删除某些元素的同时将a
的所有值传输到b
变量。
答案 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)