首页 > 解决方案 > 为什么列表不能用作字典键?

问题描述

我想要一个列表,它是字典中的键,定义如下:

data = { 
  [24,48,96]: ["QN.FN.EQ", "OT.AR.LN", "BL.VL.TR"] 
}

这不起作用......错误说是因为“列表类型不可散列......”。

有什么解决方法吗?为了能够从该字典中获取数据,如下所示:

data[[24,48,96]] # => ["QN.FN.EQ", "OT.AR.LN", "BL.VL.TR"]

我现在唯一的解决方案是 - 将列表转换为字符串并使用字符串作为键。

data = { 
  "24,48,96": ["QN.FN.EQ", "OT.AR.LN", "BL.VL.TR"] 
}
arr = [24,48,96]
print(data[','.join(map(str,arr))])

标签: pythondictionary

解决方案


您可以将元组用作字典键:

data = { 
    (24,48,96): ["QN.FN.EQ", "OT.AR.LN", "BL.VL.TR"] 
}

print data[(24,48,96)]

推荐阅读