Доступ к ключу словаря со списком значений - PullRequest
0 голосов
/ 10 апреля 2020

Вот основные списки и словарь, над которыми я пытаюсь работать:

Nodes = [[0,0,0],[1,1,1],[2,2,2]]
Lengths= [50,60,70]
dic= {'A':[Nodes[0],Lengths[0]],'B':[Nodes[1],Lengths[1]],'C':[Nodes[2],Lengths[2]]}

В этом примере я пытаюсь получить ключ словаря, если существует один элемент в значениях. Например, я ожидаю получить ключ 'A', если у меня есть 50 в списке значений, поскольку он представлен как Lengths [0]. до сих пор я работал с функцией, которая возвращает ключ, если я предоставил весь список значений следующим образом.

def get_key(Val): 
    for key, value in a.items(): 
         if Val == value: 
            return key 

print(get_key([Nodes[0],Lengths[0]])) 

Помощь будет принята с благодарностью. Большое спасибо заранее.

Ответы [ 2 ]

0 голосов
/ 10 апреля 2020

Я думаю, что ваша реализация почти готова, вам просто нужно изменить поиск на что-то вроде этого:

def get_key(Val): 
    for key, value in dic.items(): 
         if Val in value: 
            return key 
0 голосов
/ 10 апреля 2020

Этого можно добиться, заполнив словарь поиска по ключам и длинам в вашем dic словаре.

Nodes = [[0,0,0],[1,1,1],[2,2,2]]
Lengths= [50,60,70]
dic= {'A':[Nodes[0],Lengths[0]],'B':[Nodes[1],Lengths[1]],'C':[Nodes[2],Lengths[2]]}

keyByLength = {v[1]: k for k, v in dic.items()}

print(keyByLength[50])
print(keyByLength[60])
print(keyByLength[70])

Выходы

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