Python - умножить словарные значения для списка и сохранить результат обратно в другом словаре? - PullRequest
1 голос
/ 14 июля 2020

У меня такая проблема: два словаря, один «dicT», а другой «словарь». Я хочу умножить «dicT» на список (listT) и сохранить результат обратно в словарь с ключами из dicT. Есть идеи?

Я думал сделать следующее:

    for i in dPdT:
        for value in dicT.values():
            if not i in dictionary:
                dictionary[i] = []
            dictionary[i].append(i*value)

Но в итоге получается следующее сообщение трассировки:

Traceback (most recent call last):
  File "isochore.py", line 197, in <module>
    main()
  File "isochore.py", line 164, in main
    dictionary[i].append(i*value)
TypeError: can't multiply sequence by non-int of type 'float'

Спасибо!

1 Ответ

0 голосов
/ 14 июля 2020

Не могли бы вы привести пример данных и то, что вы ожидаете от них? Чего вы ожидаете, когда умножаете значение i *, считая, что i также является ключом, например, буквенно-цифровым c? Это также код ошибки, который вы получаете.

Я пытался угадать, пожалуйста, предоставьте фактические данные, потому что я не понимаю, что вы пытаетесь сделать? Это предоставляет все значения в списке l, умноженные на это значение l, поэтому в основном ** 2?

oldDictionary = {1: 10,2: 20}
L =[0, 2]
newDictionary = {}

for i in L:
    if i in oldDictionary:
        newDictionary.update({i: oldDictionary.get(i) * i})

print(newDictionary)
{2: 40}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...