python - 为什么列表不能用作字典键?
问题描述
我想要一个列表,它是字典中的键,定义如下:
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))])
解决方案
您可以将元组用作字典键:
data = {
(24,48,96): ["QN.FN.EQ", "OT.AR.LN", "BL.VL.TR"]
}
print data[(24,48,96)]
推荐阅读
- typescript - 从泛型类中获取方法的参数 - TypeScript
- c - 源文件更改时二进制文件不重建
- react-native - 如何在保持位置的同时放大图像?
- jquery - jQuery 预加载大图像,加载进度更新百分比
- redis - 我可以在一个微服务域中使用 redis master 并由不同的微服务使用 redis slave 作为共享数据的一种方式吗?
- r - R:更新 XML 文件中的数据
- python - 正则表达式:匹配字符串后跟点/逗号后跟空格
- python - 通过 boto3 更新 Glue 作业返回 InvalidInputException 错误
- bash - Bash 脚本读取值不符合比较
- python - 由于 cython 依赖,无法在 dind 18.09.6-dind 上使用 pip 安装 awscli