Ответ 1
[(k, v) for (k, v) in D.iteritems() if 'Light' in k]
В моем script я создаю словарь клавиш (альбомов), сопоставленных с художниками (значения), чтобы я мог быстро просмотреть, какие артисты сделали для каких альбомов. Тем не менее, я хочу, чтобы пользователь мог найти все альбомы, содержащие подстроку. Например, поиск по "Свету" должен возвращать
[Light Chasers] = Cloud Cult
, а также [Night Light] = Au Revoir Simone
Какой лучший способ сделать это? Должен ли я использовать словарь?
[(k, v) for (k, v) in D.iteritems() if 'Light' in k]
Если вам нужен только первый альбом, содержащий текст, здесь быстрый способ:
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'