我正在动态创建一个二维关联数组(字典?)
我正在尝试遍历它的键 - 同时保持一个索引不变,例如,所有与“键”相关联的值都在其第一个括号中带有“约翰”:
myhash['john']['smith'] = "address 1"
myhash['john']['doe'] = "address 2"
如何获取每个“键”的所有哈希键,将第一个索引保持为“约翰”(我想要所有姓氏)
谢谢
我正在动态创建一个二维关联数组(字典?)
我正在尝试遍历它的键 - 同时保持一个索引不变,例如,所有与“键”相关联的值都在其第一个括号中带有“约翰”:
myhash['john']['smith'] = "address 1"
myhash['john']['doe'] = "address 2"
如何获取每个“键”的所有哈希键,将第一个索引保持为“约翰”(我想要所有姓氏)
谢谢
myhash['john']
本身就是一本字典。(您不是在创建一个多维字典,而是一个字典字典。)
因此...
last_names = list(myhash['john'])
或者如果你想在循环中做某事......
for last_name in myhash['john']:
# do something with last_name
我在回答您之前的问题时已经提到过:看起来您正在尝试重新发明方轮。鉴于您声明的需求,您可能也希望查找姓氏部分,然后返回到第 1 步(按顺序浏览整个数据集测试“2nd-level”键)或维护“lastname”索引存储 lastname:[firstname1, firstname2, firstnameN] 减少(但不抑制)顺序浏览并且需要在任何插入或删除时更新。
IOW 您正在重新实现关系数据库可以做的大部分事情,而且您的实现不太可能比更便宜的 RDB 更快或更健壮。作为记录,有非常轻量级的基于文件的(不需要服务器进程等)RDB 引擎,如 SQLite3(Python 绑定在 stdlib 中,因此您甚至不必安装任何特殊的东西)。
>>> for k in myhash['john']:
... print(k)
...
smith
doe