Поиск элемента словаря по внешнему списку
Есть несколько словарей следующей структуры:
dic1 = {'title':'Ulitsa Sezam', 'ok.ru': [0, 0], 'vk.com': [0, 0]}
dic2 = {'title':'TMNT', 'ok.ru': [0, 0], 'vk.com': [0, 0]}
Есть список таких словарей
list_of_dics = [dic1, dic2]
Есть отдельный список тайтлов:
titles_for_search = ['TMNT', 'Ulitsa Sezam' 'Starwars']
Как мне обратиться к элементам вложенного словаря, зная элемент список тайтла, через list_of_dics? Например, я хочу поменять первую цифру у vk.com для словаря, у которого выполняется условие:
'titile' == titles_for_search[0]
Ответы (2 шт):
Автор решения: Exe
→ Ссылка
list_of_dics[0]["vk.com"][0] = 1
print(list_of_dics[0]["vk.com"])
[1, 0]
Автор решения: Xander
→ Ссылка
dic1 = {'title':'Ulitsa Sezam', 'ok.ru': [0, 0], 'vk.com': [0, 0]}
dic2 = {'title':'TMNT', 'ok.ru': [0, 0], 'vk.com': [0, 0]}
list_of_dics = [dic1, dic2]
titles_for_search = ['TMNT', 'Ulitsa Sezam' 'Starwars']
# Создаёте словарь словарей с title в качестве ключей
indexed = {dic['title']: dic for dic in list_of_dics}
# Теперь в нём можете найти нужный словарь по его title
print(
indexed[titles_for_search[0]]
)
# И меняйте в нём всё, что нужно
indexed[titles_for_search[0]]['vk.com'][0] = 1
print(
indexed[titles_for_search[0]]
)
Но, вообще, я бы посоветовал вам поизучать классы. Когда в коде появляются такие многоуровневые обращения к элементам, это звоночек, что от хаоса вложенных контейнеров стоит уходить.