我有动物清单:
list_animals = ['dog', 'cat', 'cow', 'tiger', 'lion', 'snake', 'lion']
和一组宠物:
set_pets = set(['dog', 'cat'])
我想从set_pets
中删除list_animals
中的宠物,但仍然保留list_animals的原始顺序。这可能吗?
我试图做:
set(list_animals) - set_pets
,但不保留原始动物订单...
谢谢!
答案 0 :(得分:1)
您可以通过列表理解轻松地做到这一点:
result = [a for a in list_animals if a not in set_pets]
['cow', 'tiger', 'lion', 'snake', 'lion']
我这里有第二种使用list.remove()
的方法,但是效率低下。 List comp是必经之路。
答案 1 :(得分:0)
input
输出
list_animals = ['dog', 'cat', 'cow', 'tiger', 'lion', 'snake', 'lion']
set_pets = set(['dog', 'cat'])
list_animals = list(filter(lambda x: x not in set_pets, list_animals))
print(list_animals)