Python:从列表中删除项并保留原始列表

2024-04-19 00:53:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一份动物名单:

list_animals = ['dog', 'cat', 'cow', 'tiger', 'lion', 'snake', 'lion']

还有一套宠物:

set_pets = set(['dog', 'cat'])

我想从list_animals中删除set_pets中的宠物,但仍保留列表动物的原始顺序。这可能吗?你知道吗

我试着做: set(list_animals) - set_pets,但它并没有保持原来的动物秩序。。。你知道吗

谢谢!你知道吗


Tags: 宠物列表顺序listcat动物tigeranimals
2条回答
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)

输出

['cow', 'tiger', 'lion', 'snake', 'lion']  

您可以通过列表理解轻松完成此操作:

result = [a for a in list_animals if a not in set_pets]
['cow', 'tiger', 'lion', 'snake', 'lion']

我在这里有第二个方法,它使用list.remove(),但效率很低。上市公司是一条路要走。你知道吗

相关问题 更多 >