Python:在循环

时间:2017-04-15 10:38:20

标签: python dictionary

我试图通过15个不同的va3值除以循环dt的迭代来增加15个不同va1值的值。

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值(在va1被va3 / dt改变之后)作为使用绘图功能在图形上移动的固定点,但无法解决这个问题。例如,第一个va1值将与第一个va2值一起使用。

1 个答案:

答案 0 :(得分:0)

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

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。