Вложенное понимание словаря python

У меня возникли проблемы с пониманием вложенных понятий словаря в Python 3. Результат, который я получаю из приведенного ниже примера, выводит правильную структуру без ошибок, но включает только одну из внутренних пар ключ: значение. Я не нашел пример вложенного понимания слова как это; Googling «вложенное понимание словаря python» показывает устаревшие примеры, не вложенные решения или ответы, разрешенные с использованием другого подхода. Возможно, я использую неправильный синтаксис.

Пример:

data = {outer_k: {inner_k: myfunc(inner_v)} for outer_k, outer_v in outer_dict.items() for inner_k, inner_v in outer_v.items()} 

Этот пример должен возвращать исходный словарь, но с внутренним значением, измененным myfunc .

Структура словаря external_dict, а также результат:

 {outer_k: {inner_k: inner_v, ...}, ...} 

2 Solutions collect form web for “Вложенное понимание словаря python”

{inner_k: myfunc(inner_v)} не является пониманием словаря. Это просто словарь.

Вы, вероятно, ищете нечто подобное:

 data = {outer_k: {inner_k: myfunc(inner_v) for inner_k, inner_v in outer_v.items()} for outer_k, outer_v in outer_dict.items()} 

Ради удобочитаемости не слишком усложняйте понимание словарей и перечислите их.

Добавление некоторых разрывов строк и отступов:

 data = { outer_k: {inner_k: myfunc(inner_v)} for outer_k, outer_v in outer_dict.items() for inner_k, inner_v in outer_v.items() } 

… делает очевидным, что на самом деле у вас есть одно «двумерное» понимание понятий. Вероятно, вы действительно хотите:

 data = { outer_k: { inner_k: myfunc(inner_v) for inner_k, inner_v in outer_v.items() } for outer_k, outer_v in outer_dict.items() } 

(это именно то, что предложил Блендер в своем ответе, с добавленными пробелами).

  • Я хочу подклассировать dict и установить значения по умолчанию
  • Объект Date только год и месяц
  • Пересечение двух словарей в Python
  • Python, как сохранить ключи / значения в том же порядке, что и объявлено?
  • Рекурсивный факториал с использованием dict вызывает RecursionError
  • Прочитать текстовый файл в словаре, удаляя заголовок / завершающие символы новой строки
  • Почему я не могу называть hash () по явно хешируемому методу нераскрывающегося экземпляра?
  • Как создать гистограмму появления значений в словаре?
  • Поиск ключа из значения в словаре Python:
  • Определите словарь python с неизменяемыми ключами, но изменяемыми значениями
  • В Python, как я могу получить следующий и предыдущий ключ: значение определенного ключа в словаре?
  •  
    Interesting Posts for Van-Lav

    Процесс завершен с кодом выхода 139 после обновления с python 2.7.6 64 бит до 2.7.10 32 бит

    Просеивание строки (обфускации?) Python

    Сшивание изображений Python

    Почему check_password_hash всегда возвращает False в этом режиме просмотра?

    Как проверить, содержит ли папка файлы с использованием python 3

    Задержка отправки электронной почты с использованием Mandrill send_at или обратного отсчета Celery / eta

    Блок try на Python не захватывает исключения os.system

    Получить адреса локального сетевого интерфейса, используя только proc?

    Python говорит, что pygames не имеет атрибута init (), но lib установлен правильно

    Struct.Error, должен быть объект Bytes?

    Создайте «счетчик» на matlab от 0: limit-1. Длина счетчика не определена в программе

    Матрица рассеянного графика с более низкой плавностью

    Методы Python: значения параметров по умолчанию оцениваются ONCE

    Pandas min () выбранных строк и столбцов

    Flask обрабатывает PDF как свою собственную страницу

    Python - лучший язык программирования в мире.