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

如何将含字符串列表的元组转为字典?解决不可哈希类型报错

解决将列表转换为地址为键的字典时的TypeError问题

错误原因

TypeError: unhashable type: 'list'的核心问题是:字典的键必须是可哈希类型(比如字符串、整数、元组),但你原列表里的地址是嵌套的列表(比如['21 South Main']),列表属于不可哈希类型,不能直接作为字典键。

可行解决方案

因为每个嵌套列表里只有一个地址字符串,我们只需要提取这个字符串作为键,对应的整数作为值即可。用字典推导式就能轻松实现:

address_table3 = [(1, ['21 South Main']), (2, ['1560 West St']), (3, ['1900 Broadway'])]
# 遍历每个元组,取出列表中的地址字符串作为键
address_dict = {addr_list[0]: num for num, addr_list in address_table3}

执行后得到的字典结果:

{'21 South Main': 1, '1560 West St': 2, '1900 Broadway': 3}

你之前写法的问题

你尝试的{k: v for k, v in zip(address_table3.values(), address_table3.keys())}完全不对——address_table3是列表,根本没有values()和keys()方法,这两个方法是字典专属的,所以这个写法从逻辑上就不成立。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 21:04:55