Python-将列表的字典值相乘并将结果存储回不同的字典中?

时间:2020-07-14 15:30:16

标签: python dictionary for-loop data-science equation

我有这个问题:两个字典,一个是“ dicT”,另一个是“ dictionary”。我想将“ 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 :(得分:0)

您能举一个数据示例以及您希望它做什么吗?当您将i *值相乘而您又认为i也是一个键(也许是字母数字)时,您会期望什么?那也是您得到的错误代码。

我试图猜测,请提供实际数据,因为我不了解您要做什么?这是提供列表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}