Проверка условия принадлежности Key к Value в Python
Есть словарь, вызов функции is_anybody_home(dictionary, 'b') и сама функция в которой необходимо проверить наличие значения 'b' в словаре и затем проверить какой ключ соответствует этому значению:
dictionary = {
'1' : 'a',
'2' : 'b',
'3' : 'c'
}
def is_anybody_home(collection, letter):
if letter in collection.values(): #находим букву в списке
for number in collection: #проходимся по числам
if #здесь должно быть условие
print(letter, ' это значение ключа ', number)
is_anybody_home(dictionary, 'b')
Ответы (2 шт):
dictionary = {
'1' : 'a',
'2' : 'b',
'3' : 'c'
}
def is_anybody_home(collection, letter):
for key, value in collection.items():
if value == letter:
print(letter, ' это значение ключа ', key)
is_anybody_home(dictionary, 'b')
Полное условие такое (проверить, что ключ есть в словаре, потом проверить значение по этому ключу):
number in dictionary and dictionary[number] == letter
Также можно использовать такое условие:
dictionary.get(number) == letter
get аналогично получению значения через квадратные скобки, но если запрошенного ключа нет, не выбрасывает исключение KeyError, а возвращает None (или значение, которое будет передано вторым параметром в get). Будет некорректно работать, если None - это допустимое значение в вашем словаре (будет давать совпадение для отсутствующих ключей), например следующий код покажет True:
d = {1: None}
number = 2
letter = None
print(dictionary.get(number) == letter)