【问题标题】:How to get the key from OrderedDict in python如何在 python 中从 OrderedDict 获取密钥
【发布时间】:2020-03-03 18:38:05
【问题描述】:

我在 python 中有一个下面的OrderedDict

OrderedDict([(0, array([308, 186])), (2, array([431, 166]))])

有什么方法可以单独获取密钥及其值,如下所示:

print(odict[0][0])
print(odict[0][1])
print(odict[1][0])
print(odict[1][1])

所以我得到低于输出

0
array([308, 186])
2
array([431, 166])

但是做上面我只得到:

308
186
431
166

有什么方法可以提取密钥(0、1、2、3..)。请帮忙。谢谢

【问题讨论】:

  • 你有odict.keys()odict.values()odict.items()

标签: python ordereddictionary


【解决方案1】:

有一种方法可以提取密钥:

odict.keys()

要遍历字典,你可以:

for key, value in odict.items():
    print(key, value)

这些代码 sn-ps 也适用于普通的 dict 对象。

【讨论】:

    【解决方案2】:

    您可以通过以下方式仅获取键或键和值,另外我认为应该以不同方式创建数组实例,数组应该具有相同类型的元素并且应该事先声明元素的类型:

    array module

    from collections import OrderedDict
    from array import array
    
    # right way to create array instance is to specifu array type:
    x = OrderedDict([(0, array('I', [308, 186])), (2, array('I', [431, 166]))])  
    
    for k in x.keys():  # print all keys
        print(k)
    
    for k, v in x.items():  # print key and value
        print("{}___{}".format(k, v))
    

    【讨论】:

      【解决方案3】:

      你可以通过dict.items()得到你想要的输出

      print(odict.items()[0][0])
      print(odict.items()[0][1])
      print(odict.items()[1][0])
      print(odict.items()[1][1])
      

      或者,您可以通过 dict.keys() 获取 dict keys()

      odict.keys() 会回复你[0,2]

      【讨论】:

      • odict.keys() 将返回 odict_items([(0, array('I', [308, 186])), (2, array('I', [431, 166]))]) 可以转换为元组列表。
      猜你喜欢
      • 2010-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多