Подтвердить что ты не робот

Python: поиск ключа (строки) в словаре, который содержит подстроку

В моем script я создаю словарь клавиш (альбомов), сопоставленных с художниками (значения), чтобы я мог быстро просмотреть, какие артисты сделали для каких альбомов. Тем не менее, я хочу, чтобы пользователь мог найти все альбомы, содержащие подстроку. Например, поиск по "Свету" должен возвращать

[Light Chasers] = Cloud Cult, а также [Night Light] = Au Revoir Simone

Какой лучший способ сделать это? Должен ли я использовать словарь?

4b9b3361

Ответ 1

[(k, v) for (k, v) in D.iteritems() if 'Light' in k]

Ответ 2

Если вам нужен только первый альбом, содержащий текст, здесь быстрый способ:

try:
    return ('[%s] = %s' % (k, D.get(k)) for k in D if search_string.lower().strip() in k.lower()).next()
except StopIteration:
    return 'No matches found'