假设我有以下列表:
array1 = ['A', 'C', 'Desk']
Run Code Online (Sandbox Code Playgroud)
和另一个包含:
array2 = [{'id': 'A', 'name': 'Greg'},
{'id': 'Desk', 'name': 'Will'},
{'id': 'E', 'name': 'Craig'},
{'id': 'G', 'name': 'Johnson'}]
Run Code Online (Sandbox Code Playgroud)
从列表中删除项目的好方法是什么?以下似乎不起作用
for item in array2:
if item['id'] in array1:
array2.remove(item)
Run Code Online (Sandbox Code Playgroud)
你也可以使用列表理解:
>>> 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'}]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
160 次 |
| 最近记录: |