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

如何以对象名为键将对象存入哈希表?Python实现问题求助

问题修复方案

核心错误点:

  • 你将哈希表的实例化代码写在了for循环内部,每遍历一行数据就会创建一个全新的空哈希表,最终循环结束后你拿到的哈希表仅存储了文件最后一行生成的Person对象,之前存入的数据全部被新的空哈希表覆盖。

修复后的代码如下:

# 哈希表实例化移到循环外,全程复用同一个实例
q = HashtableDict(1000)
with open("names.csv", "r") as names_file:
    for line in names_file.readlines():
        # 可选补充:去除每行末尾的换行符、空行,避免Person初始化异常
        line = line.strip()
        if not line:
            continue
        person = Person(line)
        q.store(key=person.name, data=person)

额外排查点:

  • 如果你的csv文件包含表头,需要跳过第一行再解析,避免把表头行生成异常的Person对象
  • 确认Person类初始化时正确拆分了每行的姓名、电话、邮箱三个字段,且name属性取值正确,没有混入多余的逗号、空格等字符
  • 确认HashtableDict类的store和find方法逻辑正确,哈希冲突处理、键的哈希计算没有问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 04:36:04