Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.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 3.x 在Python中迭代长度发生变化的数组的最佳方法_Python 3.x - Fatal编程技术网

Python 3.x 在Python中迭代长度发生变化的数组的最佳方法

Python 3.x 在Python中迭代长度发生变化的数组的最佳方法,python-3.x,Python 3.x,我正在实现一个可能会影响某些数组大小的算法,我需要遍历整个数组。基本上,“for x in arrayname”不起作用,因为如果arrayname的内容在循环中更改,它不会更新。我提出了一个丑陋的解决方案,如下例所示: test = np.array([1,2,3]) N = len(test) ii=0 while ii < N: N = len(test) print(test[ii]) if test[ii] ==2: test =

我正在实现一个可能会影响某些数组大小的算法,我需要遍历整个数组。基本上,“for x in arrayname”不起作用,因为如果arrayname的内容在循环中更改,它不会更新。我提出了一个丑陋的解决方案,如下例所示:

test = np.array([1,2,3])
N = len(test)
ii=0
while ii < N:
    N = len(test)
    print(test[ii])
    if test[ii] ==2:
            test = np.append(test,4)
    ii+=1 
test=np.array([1,2,3])
N=len(测试)
ii=0
而ii
我想知道是否有更清洁的解决办法


提前谢谢

使用列表理解创建新列表。如果您必须对原始列表进行变异,请在之后进行切片赋值。@kaya3您能给出一个具体的例子吗?-它怎么能允许我继续迭代其他元素呢?在这种情况下,您希望为列表中的每个2添加一个4,因此
arr.extend([4代表arr中的x,如果x==2])
执行相同的操作。在其他情况下,情况会有所不同,这取决于您是否要在列表中添加或删除内容。这段代码是为一个本地Python列表编写的,不是一个numpy数组,而是当你想做很多附加的时候;但是,如果必须使用numpy,请连接而不是扩展。