Skip to main content
 首页 » 编程设计

python之从列表 Python 中删除匹配项

2025年05月04日14三少

如何从列表中删除匹配项? <class 'list'>

snapshot_tag = [{'Key': 'Disaster_Recovery', 'Value': 'Full'}, {'Key': 'Backup Initiator Rule', 'Value': 'Daily-6d-retention'}, {'Key': 'Name', 'Value': 'HOSTNAME'}, {'Key': 'aws:backup:source-resource', 'Value': '000AD618-2D20-CE4B-0000-0000B688C579'}, {'Key': 'Backup_Type', 'Value': 'CROSS-REGION'}] 

我需要删除一个元素:

{'Key': 'aws:backup:source-resource', 'Value': '000AD618-2D20-CE4B-0000-0000B688C579'} 

如果指定完整的元素名称,我可以删除它:

snapshot_tag.remove({'Key': 'aws:backup:source-resource', 'Value': '000AD618-2D20-CE4B-0000-0000B688C579'}) 

或者指定一个特定的索引:

del snapshot_tag[3]

但在我的例子中,元素的“值”总是不同的,索引是随机的。

请您参考如下方法:

使用列表理解:

print ([item for item in snapshot_tag if item['Key'] !=  'aws:backup:source-resource']) 

或者使用过滤器,lambda:

print (list(filter(lambda item: item['Key'] != 'aws:backup:source-resource', snapshot_tag))) 

输出:

[{'Key': 'Disaster_Recovery', 'Value': 'Full'}, {'Key': 'Backup Initiator Rule', 'Value': 'Daily-6d-retention'}, {'Key': 'Name', 'Value': 'HOSTNAME'}, {'Key': 'Backup_Type', 'Value': 'CROSS-REGION'}]