python - 对字典中的键使用不可变数据类型
问题描述
您好,我似乎无法让我的代码返回任何值。
我的原始代码是:
room_numbers = {
['Freddie', 'Jen']: 403,
['Ned', 'Keith']: 391,
['Kristin', 'Jazzmyne']: 411,
['Eugene', 'Zach']: 395
}
下面列出了我的新代码
room_numbers = {
tuple (['Freddie', 'Jen']): (403),
tuple (['Ned', 'Keith']): 391,
tuple (['Kristin', 'Jazzmyne']): 411,
tuple (['Eugene', 'Zach']): 395
}
我改变了它,所以我可以使用正确的数据类型。我知道您不能对字典使用可变数据类型,而 Python 要求我们对字典中的键使用不可变数据类型。但是,我不知道如何调用字典。但是,当我尝试调用不同的数据类型时,我无法打印出任何结果。
如果我对上面代码的更改是正确的,您能否回答我为什么不能执行以下操作:
print (room_numbers['Freddie']) #why does this not return 403?
我想调用唯一键来返回分配给它们的唯一值。这个过程的python代码是什么?
解决方案
没有返回任何内容room_numbers['Freddie']
,实际上应该引发错误,因为Freddie
字典中没有键room_numbers
。但是,您可以访问('Freddie', 'Jen')
密钥,因为它存在。
room_numbers[('Freddie', 'Jen')] # or room_numbers['Freddie', 'Jen']
但这可能不是您想要的。你可能在追求
room_numbers = {
'Freddie': 403,
'Jen': 403,
'Ned': 391,
'Keith': 391,
...
}
这允许您这样做,room_numbers['Freddie']
因为此特定字典中有一个Freddie
键。
推荐阅读
- javascript - 在组件中以编程方式从对象创建路由不起作用
- node.js - docker中用于express.js服务器的Nginx反向代理
- javascript - 将变量声明为多个状态值
- azure-devops - Service Fabric、Azure Devops 部署失败:指定的网络密码不正确
- google-apps-script - 用于多张工作表的 Google 表格 OnEdit 功能
- python - 在这种情况下,python 中的多重赋值如何?
- java - 有没有办法只显示过滤后的结果?
- monaco-editor - 摩纳哥编辑器:自定义撤消/重做
- r - 将 .SDcols 和 .SD 与 data.table 中的两组列一起使用
- go - 是否可以在不添加接口的情况下存根/模拟函数调用?