Я пишу функцию, где мне нужно проанализировать словарь и вытащить один из ключей и все его значения и вернуть его.Возврат определенных ключей и их значений из словаря
Пример словаря:
{'P':[("Eight",1460, 225.0, 200.0, "fresco","Netherlands"),
("Six",1465,81.0, 127.1, "tempera", "Netherlands")],
'V':[("Four",1661, 148.0, 257.0,"oil paint", "Austria"),
("Two",1630, 91.0, 77.0, "oil paint","USA")],
'K':[("Five",1922,63.8,48.1,"watercolor","USA"),
("Seven",1950,61.0,61.0,"acrylic paint","USA"),
("Two",1965,81.3,100.3,"oil paint","United Kingdom")],
'C':[("Ten",1496,365.0,389.0,"tempera","Italy")],
'U':[("Nine",1203,182.0, 957.0,"egg tempera","Italy"),
("Twelve",1200,76.2,101.6,"egg tempera","France")]}
Так что, если моя функция называется find_the_key и я искал «C» и его значение, то ему необходимо будет вернуть
find_the_key(dictionary2(),['C'])
return {'C': [('Ten', 1496, 365.0, 389.0, 'tempera','Italy')]}
Если необходимо найти как «C», так и «V» он вернется
find_the_key(dictionary2(),['C','V'])
return {'C': [('Ten', 1496, 365.0, 389.0, 'tempera', 'Italy')], 'V': [('Four',
1661, 148.0, 257.0, 'oil paint', 'Austria'), ('Two', 1630, 91.0, 77.0, 'oil
paint', 'USA')]}
Я провел некоторое исследование по извлечению ключа из словарь, и мой текущий код может быть близок.
def find_the_key(dictionary,thekey):
for thekey in dictionary.keys():
if dictionary[thekey] == targetkey:
return key, targetkey
В настоящее время я получаю сообщение об ошибке. Целевая кнопка не определена, хотя я думаю, что моя логика находится на правильном пути. Кто-нибудь знает, как это сделать?
Что вы хотите сделать, если ключ не существует в словаре? Просто проигнорируйте его, поднимите ошибку или верните значение по умолчанию? –
@ PM2Ring Решение Jean-François Fabre делает правильную вещь, которая, как мне кажется, просто игнорирует ее – warrior4223
Я считаю, что оба ответа справляются с проблемой, даже не замечая этого :) –