Python - Как мне вернуть ключ dict в соответствии со значением во вложенном dict? - PullRequest
0 голосов
/ 01 февраля 2019

У меня есть словарь словарей в Python.

Я бы хотел, чтобы пройти через каждый из них, проверить значение ключа 'val' в каждом словаре, а затем вернуть исходный ключ словаря, где'val' == 0.

dict = {
    1: {'x': 'a', 'val': 1},
    2: {'x': 'b', 'val': 1},
    3: {'x': 'c', 'val': 0},
    4: {'x': 'c', 'val': 0}
}

Я попробовал следующее, но это просто возвращает 3 и 4.

for itemid, iteminfo in data.items():
    for key in iteminfo:
        if iteminfo[key] == 0:
            print(str(itemid))

В приведенном выше примере я хотел бы, чтобы 3 вернул, так как это первыйэкземпляр, где 'val' == 0.

1 Ответ

0 голосов
/ 01 февраля 2019

Если вы просто хотите, чтобы первое вхождение 'val' было в паре с 0 (без какого-либо определенного порядка, так как дикты в python не упорядочены), вы можете использовать разрыв с условным оператором внутри цикла:

mydict = {
    1: {'x': 'a', 'val': 1},
    2: {'x': 'b', 'val': 1},
    3: {'x': 'c', 'val': 0},
    4: {'x': 'c', 'val': 0}
}

for key, value in mydict.items():
    if value['val'] == 0:
        print(key)
        break

Если порядок важен, вы можете пойти с заказанным диктом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...