Python:在循环中增加字典值



我正在尝试将15个不同VA1值的值通过15个不同的VA3值除以循环dt的迭代。

import random as r
n = 15
new_dict = {k: {'va1': r.randint(0, 50), 'va2': r.randint(0, 15), 'va3': r.randint(0, 10)} for k in range(n)}
for dt in range(100):
    for va1, va3 in new_dict.items():
        va1 = va1 + va3 / dt 
print(new_dict)

我会收到错误:unsupported operand type(s) for /: 'dict' and 'int',我认为这意味着您无法通过整数在字典值上操作,但肯定有解决方法吗?而是使用列表?

最终,我想绘制相应的VA1,VA2值(在VA3/DT已更改后(作为使用Draw函数在图上移动的固定点,但无法弄清楚。例如,第一个VA1值将带有第一个VA2值。

我不确定这是否是您要做的。但这可能会帮助您解决问题。

import random as r
n=15
new_dict = {'va1': [r.randint(0,50) for k in range(n)], 'va2': [r.randint(0,15) for k in range(n)], 'va3': [r.randint(0,10) for k in range(n)]}
print(new_dict['va1'])
for dt in range(1,101):
    for i in range(n):
        new_dict['va1'][i] = new_dict['va1'][i] + new_dict['va3'][i]/dt
        new_dict['va2'][i] = new_dict['va2'][i] + new_dict['va3'][i]/dt
    print(new_dict)

我将每个列表分别为每个字典键创建,因为只有三个。我这样做的主要是由于您正在更改每个列表与密钥的列表。

产生的内容。

也更改DT的范围,因为您不能除以0。

最新更新