首页 > 解决方案 > 将循环中的答案添加到列表中

问题描述

对不起,如果我在这里没有任何意义,我只学了几个星期的 python,但我想把我从循环中得到的答案放到一个列表或数组中。

这是代码:

import itertools
n = 100 
r = RandomState()
p = np.zeros(n)
for _ in itertools.repeat(p, 10):
    n = 100
    for k in range(99):
        p[0] = 0.0
        for i in range(n-1):
            if (r.rand() >= 0.5):
                p[i+1] = p[i] + 1.
            else:
                p[i+1] = p[i] - 1.
d = [p[99]]
print(d)
    

基本上我希望它生成 100 个随机数,每个随机数添加到它之前的一个。然后我在 p[99] 处取最终值,然后重复整个过程 10 次并取每个最终值,但 python 以这种格式给我结果:

[11.0]
[15.0]
[11.0]
[-7.0]
[-7.0]
[13.0]
[-1.0]
[-1.0]
[1.0]
[21.0]

相反,我希望所有值都放在一个列表或数组中。如果有人可以提供帮助,我将不胜感激!

标签: arrayspython-3.xlistloops

解决方案


创建一个空列表并将结果附加到它

import itertools
n = 100 
res = []
r = np.random.RandomState()
p = np.zeros(n)
for _ in itertools.repeat(p, 10):
    n = 100
    for k in range(99):
        p[0] = 0.0
        for i in range(n-1):
            if (r.rand() >= 0.5):
                p[i+1] = p[i] + 1.
            else:
                p[i+1] = p[i] - 1.
    res.append(p[99])
print(res)

输出:

[-11.0, 3.0, 3.0, 3.0, -15.0, -5.0, 11.0, 5.0, -1.0, -9.0]

推荐阅读