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

如何基于city字段对Python自定义对象列表进行去重

实现方案

你可以借助Python字典键唯一的特性完成去重,时间复杂度为O(n),效率远高于遍历比对的方案:

保留每个city首次出现的对象

city_map = {}
for item in simple_list:
    if item.city not in city_map:
        city_map[item.city] = item
# 得到去重后的列表
simple_list = list(city_map.values())

保留每个city最后出现的对象

如果不需要保留首次出现的对象,代码可以更简化:

# 遍历赋值会自动覆盖同key的旧值,最终保留最后出现的对象
simple_list = list({item.city: item for item in simple_list}.values())

注:Python 3.7及以上版本默认保留字典的插入顺序,最终去重列表的顺序会和原列表中city首次/末次出现的顺序一致,完全符合你给出的示例输出要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 22:15:05