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

Python数据类列表高效查找:替代遍历获取指定ID的数据类

优化数据类对象的查找效率

核心思路:用字典存储数据类实例

把原来的列表存储换成字典,以Feld.id作为键,对应的Feld实例作为值。字典的键查找时间复杂度是O(1),远优于列表遍历的O(n),能大幅提升查找效率。

修改后的代码实现

1. 替换存储结构

将原来的列表改为字典:

from dataclasses import dataclass
from typing import Dict

self.feld_dict: Dict[str, Feld] = {}  # 键为id字符串,值为Feld实例

2. 填充数据到字典

替换原有的列表填充逻辑,直接将实例存入字典:

for element in Daten:
    data = Feld(element[0], element[1], element[2], int(element[3]))
    self.feld_dict[data.id] = data  # 以id作为键存储实例

3. 优化查找方法

原来的遍历查找方法可以简化为直接通过键获取:

def changeValueOf(primaryKey):
    feld = self.feld_dict.get(primaryKey)
    if feld:
        # 执行你的操作,比如修改属性:feld.value1 = "新值"
        pass

额外注意事项

  • Python 3.7及以上版本的普通字典会保留插入顺序,若需要严格维护实例的添加顺序,无需额外处理;低版本可使用collections.OrderedDict
  • 如果数据源中存在重复的id,需要提前处理重复逻辑(比如保留最后一个实例、抛出异常或合并数据),避免后续实例覆盖之前的

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 10:33:24