【问题标题】:iterating one key in a python multidimensional associative array在python多维关联数组中迭代一个键
【发布时间】:2012-07-07 20:08:59
【问题描述】:

我正在动态创建一个二维关联数组(字典?)

我正在尝试遍历它的键 - 同时保持一个索引不变,例如,所有与“键”关联的值都在其第一个括号中带有 'john':

myhash['john']['smith'] = "address 1"
myhash['john']['doe'] = "address 2"

如何获取每个“键”的所有哈希键,保持第一个索引为“约翰” (我想要所有的姓氏)

谢谢

【问题讨论】:

标签: python loops dictionary iterator associative-array


【解决方案1】:

我在answering your previous question 时已经提到过它:看起来您正在尝试重新发明方轮。鉴于您声明的需求,您可能也希望查找姓氏部分,然后返回到第 1 步(按顺序浏览整个数据集测试“2nd-level”键)或维护“lastname”存储姓氏的索引:[firstname1, firstname2, firstnameN] 减少(但不抑制)顺序浏览,并且需要在任何插入或删除时更新。

您正在重新实现关系数据库的大部分功能,而且您的实现不太可能比更便宜的 RDB 更快或更健壮。记录一下,有一些非常轻量级、基于文件(不需要服务器进程等)的 RDB 引擎,例如 SQLite3(Python bindings are in the stdlib,因此您甚至不必安装任何特殊的东西)。

【讨论】:

    【解决方案2】:
    >>> for k in myhash['john']:
    ...     print(k)
    ... 
    smith
    doe
    

    【讨论】:

      【解决方案3】:

      myhash['john'] 本身就是一个字典。 (您不是在创建一个多维字典,而是一个字典字典。)

      这样……

      last_names = list(myhash['john'])
      

      或者如果你想在循环中做某事......

      for last_name in myhash['john']:
          # do something with last_name
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-17
        • 2012-08-30
        • 2011-08-17
        • 2023-03-08
        • 2014-05-17
        相关资源
        最近更新 更多