【问题标题】:How to access associative arrays in Python如何在 Python 中访问关联数组
【发布时间】:2017-09-16 10:12:38
【问题描述】:

如何逐行打印0键中的值,然后再打印1键中的值?我们如何访问关联数组的全部值?

glyph = {
    '0': [" ##### ", " ## ## ", "## ## ", "## ## ", "## ## ", " ## ## ", " ##### "], 
    '1': [" ## ", " #### ", " ## ", " ## ", " ## ", " ## ", " ###### "]
}

【问题讨论】:

  • glyph['0'] 将为您提供与“0”键关联的值。同样,glyph['1'] 将为您提供与“1”键关联的值。在 Python 中,这些称为字典,而不是关联数组。

标签: python associative-array


【解决方案1】:

除非这是SortedDict 或其他非dict 映射结构,否则无法保证您将按键的排序顺序进行迭代。如果您关心获取 '0' 值,然后是 '1' 值等,您需要这样的东西:

[x for x in glyph[y] for y in sorted(glyph.keys())]

【讨论】:

    【解决方案2】:

    像这样:

    for valuelist in glyph.values():
        for value in valuelist:
            print(value)
    
    
     ##### 
     ## ## 
    ## ## 
    ## ## 
    ## ## 
     ## ## 
     ##### 
     ## 
     #### 
     ## 
     ## 
     ## 
     ## 
     ###### 
    

    要访问单个列表,请使用glyph['0']glyph['1'] 等。

    要获取所有值的列表,请使用list(glyph.values())

    要将它们组合成一个大列表,请使用列表推导:

    [i for j in glyph.values() for i in j].

    请注意,字典没有排序,因此您可能需要执行以下操作:

    for valuelist in {key: glyph[key] for key in sorted(glyph)}:
        for value in valuelist:
            print(value)
    

    {key: glyph[key] for key in sorted(glyph)} 基于sorted 版本的glyph 创建内联字典。

    如果您想订购,请查看collections.OrderedDict。 如需进一步参考,请查找“python 中的字典”。

    【讨论】:

      【解决方案3】:
      [y for y in [x  for x in glyph.values()]]
      

      列表理解方式。

      【讨论】:

      • 可以直接使用双重迭代,无需创建内部列表。
      • 这和list(glyph.values()) 一样——不需要列表理解。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-01
      相关资源
      最近更新 更多