Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将另一个列表的当前状态(而不是迭代后的最终状态)附加到列表中?_Python_List_For Loop_Append_Iteration - Fatal编程技术网

Python 如何将另一个列表的当前状态(而不是迭代后的最终状态)附加到列表中?

Python 如何将另一个列表的当前状态(而不是迭代后的最终状态)附加到列表中?,python,list,for-loop,append,iteration,Python,List,For Loop,Append,Iteration,下面是我的代码的简化版本(我使用循环进行一次迭代,只是为了“模拟”原始代码中的正常循环): 将numpy导入为np b=[] 对于范围(1)中的i: a=np.零([5]) b、 附加(a) 对于范围(1)内的j: 对于范围(5)内的h: a[h]=h b、 附加(a) 结果b为: [array([0., 1., 2., 3., 4.]), array([0., 1., 2., 3., 4.])] 我想要的b是: [array([0., 0., 0., 0., 0.]), array([0.

下面是我的代码的简化版本(我使用循环进行一次迭代,只是为了“模拟”原始代码中的正常循环):

将numpy导入为np
b=[]
对于范围(1)中的i:
a=np.零([5])
b、 附加(a)
对于范围(1)内的j:
对于范围(5)内的h:
a[h]=h
b、 附加(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.])]

试试这个,输出就是您所期望的:)

嗨,欢迎使用SO!请参阅以获取有关设置问题中代码格式的帮助。简短版本:第一次执行
b.append(a)
,它只是对
a
的引用,而不是副本。因此,当您稍后使用范围(5)中的h:a[h]=h
修改
a
时,您正在修改索引0处引用的同一对象。阅读此答案了解更多信息:
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)