Как получить ключ от OrderedDict в python - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть значение ниже OrderedDict в python:

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 ..). Пожалуйста помоги. Спасибо

Ответы [ 3 ]

2 голосов
/ 07 ноября 2019

Существует способ извлечения ключей:

odict.keys()

Чтобы пройти через dict, вы можете:

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

Эти фрагменты кода также работают с обычными объектами dict.

1 голос
/ 07 ноября 2019

Ниже вы можете получить только ключи или ключи и значения следующими способами, также я предполагаю, что экземпляры массива должны были быть созданы по-другому, массив должен иметь элементы одного типа, а тип элементов должен быть объявлен заранее:

модуль массива

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))
0 голосов
/ 07 ноября 2019

вы можете получить желаемый результат через dict.items ()

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

или вы можете получить ключи dict () через dict.keys ()

odict.keys() willвернуть вам [0,2]

...