Понимание словаря из словаря

Я "тестирую" словари для понимания, используя словарь для генерации других.

Итак, я хочу сохранить "ключи" первого и умножить значения *2. И да... я хочу сделать это с пониманием, чтобы понять.

Я хочу достичь: {4: 2, 7: 4, 8: 6, 9: 8}

Я пытаюсь это:

dic1 = {4:1, 7:2, 8:3, 9:4}

dictComp= {key:value for key in dic1.keys() for value in dic1.values() * 2}

print(dictComp)

ОШИБКА:

Traceback (most recent call last):
  File "C:\Python\file.py", line 13, in <module>
    dictComp= {key:value for key in dic1.keys() for value in dic1.values() * 2}
  File "C:\Python\file.py", line 13, in <dictcomp>
    dictComp= {key:value for key in dic1.keys() for value in dic1.values() * 2}
TypeError: unsupported operand type(s) for *: 'dict_values' and 'int'

Кто-нибудь может мне помочь? Большое спасибо!

1 ответ

Используйте словарь, как это:

In [2]: dic1 = {4:1, 7:2, 8:3, 9:4}

In [3]: new_dict = {k: v * 2 for k, v in dic1.iteritems()} # dic1.items() for Python 3

In [4]: new_dict
Out[4]: {4: 2, 7: 4, 8: 6, 9: 8}
Другие вопросы по тегам