Этот запрос является чем-то вроде продолжения моего предыдущего вопроса: Создание словарей из списков внутри словарей
, что дало мне:
primaryDict = {'list_a':[{'apple':0}, {'orange':0}], 'list_b':[{'car':0}, {'bus':0}]}
, к которомуДля упрощения обработки я изменил следующее:
primaryDict = {'a': {'car': 0, 'bus': 0}, 'b': {'apple': 0, 'orange': 0}}
Итак, проблема, с которой я столкнулся, заключается в том, что мне нужно обновлять числовое значение для каждого вхождения строки во вложенном списке с учетом набораусловия:
В отдельном списке подсписков, например:
objList = [['car', 'bus', 'train', 'apple', 'b'], ['apple', 'car', 'bike', 'a', 'b']]
, в которые вложены списки строк,подсписки, в которых я буду проверять наличие строки.
Для увеличения счетчика соответствующая строка ключа также должна присутствовать в том же списке.Таким образом, счетчики в «a»: {} будут увеличиваться, только если присутствует строка «a», а также значение целевой строки внутри «a»: {}.
Так чторезультирующее значение для primaryDict ['a'] и primaryDict ['b'] должно быть:
{'car':1, 'bus':0}, {'apple':2, 'orange':0}
, так как 'car' появился в списке с 'a', а 'bus' - нет.
Попытка, которую я пытался сделать для этой проблемы, была путаницей циклов, и если сродни:
for k, v in primaryDict.items():
for key in primaryDict:
for sublist in objList:
if key in sublist:
for word in v:
if word in sublist:
primaryDict[key][v] = v.get(key, 0) + 1
, который выглядит абсолютно отвратительно, не работает и ясно показывает мое непонимание индексации.
Мои ошибки от различных попыток в основном состояли из typeErrors, где словарь, на который я ссылался, был явно в виде строки, то есть я ссылался на ключ или значение в списке, а не на значение во вложенном словаре.
Цель: я должен написать функцию, которая будет зацикливаться и обновлять числовое значение во вложенном словаре с учетом условий (оба ключа primaryDict и вложенный dict присутствуют в подсписке).Я пытаюсь НЕ генерировать новый словарь, и я пытаюсь НЕ полагаться на импортированные модули, так как мне не хватает их понимания, что, вероятно, снова запутает меня в будущем.
Пожалуйста, посоветуйте мне, как мне следуетисправить мой код и как правильно индексировать числовое значение, если я хочу использовать число для будущих вычислений и сравнений.
Спасибо