У меня есть словарь в форме dict [keyA] [key1], где 'key1' - это словарь списков. т.е. keyA - это словарь словарей списков. Ниже приведен пример создания словаря.
dict = { 'keyA': { 'keyA1': ['L1','L2',...], 'keyA2': ['L','L',...], ... },
'keyB': { 'keyB1': ['L1','L2',...], 'key...': ['L','L',..], ...}
}
Мне нужно объединить значения списков вместе, и я хотел бы сделать это с помощью такой конструкции:
newStr = ' A B C '.join(val for val in (dict[keyA][k] for k in dict[keyA]))
Это происходит с ошибкой, что val - это «список» вместо строки.
, когда я разрешаю val через 2 для циклов, я получаю список строк, как я ожидаю, что будет предоставлено выше.
Простой пример, который работает для одной записи во внешнем словаре и печатает список строк
for k in dict[keyA]:
for val in dict[keyA][k]:
print(val)
Пример, который не работает и печатает «список»:
for val in (dict[keyA][k] for k in dict[keyA]): print(val)
вывод из-за неудачного теста выше (обратите внимание на прилагаемые скобки в выходных данных). Если я «набираю» это значение, это означает, что значение действительно является списком: ['некоторый текст', 'еще немного текста', ....]
При работе над вложенными циклами 'for' вышеприведенный выше текст в отдельных строках без квадратных скобок, как и ожидалось, вывод которых должен работать в соединении, чтобы дать желаемые результаты ....
Может кто-нибудь объяснить, чего мне здесь не хватает