You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于fruit键过滤两个Python字典列表生成差异列表

找出两个字典列表中基于'fruit'键的差异

要解决这个问题,核心是先提取list2里所有fruit键的值,再筛选list1中fruit不在该集合内的字典。用集合存储fruit值能大幅提升查询效率,具体实现如下:

list1 = [
    {'fruit': 'apple', 'amt': '1'},
    {'fruit': 'banana', 'amt': '2'},
    {'fruit': 'cherry', 'amt': '3'},
    {'fruit': 'date', 'amt': '4'},
    {'fruit': 'elderberry', 'amt': '5'},
]

list2 = [
    {'fruit': 'date', 'amt': '6'},
    {'fruit': 'elderberry', 'amt': '7'},
]

# 提取list2中所有fruit值存入集合
list2_fruit_set = {item['fruit'] for item in list2}
# 列表推导式筛选list1中符合条件的项
list3 = [item for item in list1 if item['fruit'] not in list2_fruit_set]

print(list3)

运行后输出:

[{'fruit': 'apple', 'amt': '1'}, {'fruit': 'banana', 'amt': '2'}, {'fruit': 'cherry', 'amt': '3'}]

补充说明

如果你的列表数据量很小,也可以直接用列表存储list2的fruit值(list2_fruits = [item['fruit'] for item in list2]),但集合的成员查询时间复杂度是O(1),比列表的O(n)更高效,数据量大时差异会很明显。

内容的提问来源于stack exchange,提问作者PinAppleRedbull

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 19:43:25