Выбрать ключи по значениям из словаря Python

Необходимо вывести в отдельный список ключи по значениям, но выводится только первый, другие игнорируются

def search_name(value): 
    dict = {'Annabel': ['HDfilm','Horror'], 'Avatar': ['Fullscreen','Fantasy'], 'Happy end': ['HdFilm','Horror']}#имена по жанру
    
    for k, v in dict.items():
    l = [] 
             
            if v[1] == value:
                
                res = l.append(k)
                return res
            else:
                return None
search_name('Horror')

Ответы (1 шт):

Автор решения: Alexander Kolbeko

Операция append для списка является void функцией, поэтому в res всегда попадает None.

Попробуй таким образом:

def search_name(value):
    dict = {'Annabel': ['HDfilm','Horror'], 'Avatar': ['Fullscreen','Fantasy'], 'Happy end': ['HdFilm','Horror']}#имена по жанру
    
    l = []
    for k, v in dict.items():

        if v[1] == value:
            l.append(k)
    return l

print(search_name('Horror'))
→ Ссылка