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

Python按键列表提取字典值报unhashable type: 'list'错误如何解决

报错原因
  • region_colsbis为嵌套列表结构,直接遍历外层列表得到的元素是内层完整列表,列表不可哈希,触发unhashable type: 'list'报错
  • 若从DataFrame提取列时未转换为纯列表,拿到的是Pandas Series对象,Series不可哈希,触发'Series' objects are mutable, thus they cannot be hashed报错
解决方法

通用快速方案

先提取内层列表、转换为纯字符串列表后再做映射:

# 1. 先取嵌套列表的内层元素,若为Series则先转列表
flat_regions = region_colsbis[0]
# 2. 列表推导完成键值映射
region_cols = [region_colors[region] for region in flat_regions]

如果是直接从DataFrame列提取,建议提取时就转成单层列表,避免后续嵌套/Series问题:

# 提取DataFrame列时直接转纯列表,替换为你的实际列名即可
region_colsbis = df['region'].tolist()
region_cols = [region_colors[region] for region in region_colsbis]

兼容任意嵌套层数的方案

如果不确定嵌套层级,可以先打平所有元素再做映射:

# 递归打平嵌套列表
def flatten(nested):
    for item in nested:
        if isinstance(item, list):
            yield from flatten(item)
        else:
            yield item

region_cols = [region_colors[r] for r in flatten(region_colsbis)]

内容的提问来源于stack exchange,提问作者Héctor Ocampo Ruiz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 03:45:03