Python中如何高效存储多个Node类实例并按ID快速访问?
最符合Python风格的Node实例存储与ID访问方案
直接用Python内置的**字典(dict)**是最优解,完美适配你的需求:ID无规律、实例可动态增删、按ID访问能达到O(1)的时间复杂度。
具体实现方式
- 初始化存储字典:
node_dict = {} - 添加Node实例:
new_node = Node([1,2,3], 1001) node_dict[new_node.ID] = new_node - 按ID快速访问实例:
# 用get方法避免ID不存在时抛出KeyError,找不到返回None target_node = node_dict.get(1001) # 确定ID存在时,可直接取值 target_node = node_dict[1001] - 删除指定ID的Node实例:
del node_dict[1001] # 用pop方法可同时获取被删除的实例,第二个参数为ID不存在时的默认返回值 removed_node = node_dict.pop(1001, None)
额外提示
- Python 3.7及以上版本的字典默认维护插入顺序,无需额外使用
OrderedDict。 - 遍历所有Node实例时,直接遍历字典的值即可:
for node in node_dict.values(): print(node.ID, node.x, node.y, node.z)
内容的提问来源于stack exchange,提问作者Carlo
相关产品推荐
相关产品推荐

