假设我有以下列表:
array1 = ['A', 'C', 'Desk']
另一个数组包含:
array2 = [{'id': 'A', 'name': 'Greg'},
{'id': 'Desk', 'name': 'Will'},
{'id': 'E', 'name': 'Craig'},
{'id': 'G', 'name': 'Johnson'}]
从列表中删除项目的好方法是什么?以下似乎不起作用
for item in array2:
if item['id'] in array1:
array2.remove(item)
最佳答案
您还可以为此使用列表推导式:
>>> array2 = [{'id': 'A', 'name': 'Greg'},
... {'id': 'Desk', 'name': 'Will'},
... {'id': 'E', 'name': 'Craig'},
... {'id': 'G', 'name': 'Johnson'}]
>>> array1 = ['A', 'C', 'Desk']
>>> filtered = [item for item in array2 if item['id'] not in array1]
>>> filtered
[{'id': 'E', 'name': 'Craig'}, {'id': 'G', 'name': 'Johnson'}]
关于python - 如何从列表中删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17304895/