首页 > 解决方案 > 如何将另一个列表的当前状态而不是迭代后的最终状态附加到列表中?

问题描述

这是我的代码的简化版本(我使用带有单次迭代的 for 循环,只是为了“模拟”我在原始代码中的正常循环):

import numpy as np

b=[]
for i in range(1):
    a=np.zeros([5])
    b.append(a)
    for j in range(1):
        for h in range(5):
            a[h]=h
        b.append(a)

结果b是:

[array([0., 1., 2., 3., 4.]), array([0., 1., 2., 3., 4.])]

b我想要的是:

[array([0., 0., 0., 0., 0.]), array([0., 1., 2., 3., 4.])]

标签: pythonlistfor-loopappenditeration

解决方案


import numpy as np

b=[]
for i in range(1):
    a=np.zeros([5])
    b.append(a)
    for j in range(1):
        for h in range(5):
            a[h]=h
    b.append(a)
    # print(b)
    del b[0]
    # b.append(c)
    a=np.zeros([5])
    b.insert(0, a)
print(b)

试试这个输出是你所期望的:)


推荐阅读