Python: поиск (строкового) ключа в словаре, который содержит подстроку - PullRequest
11 голосов
/ 15 июля 2010

В моем сценарии я строю словарь ключей (альбомов), сопоставленных с исполнителями (значениями), чтобы я мог быстро просмотреть, какие исполнители создали какие альбомы.Однако я хочу, чтобы пользователь мог найти все альбомы, содержащие подстроку.Например, поиск по «Light» должен вернуть

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

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

Ответы [ 2 ]

21 голосов
/ 15 июля 2010
[(k, v) for (k, v) in D.iteritems() if 'Light' in k]
0 голосов
/ 06 мая 2013

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

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'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...