如何在特定操作后更新python数组

如何在特定操作后更新python数组,python,numpy,Python,Numpy,在下面的代码中,我有一个名为List的数组。当for循环第一次运行时,我对该数组的一些值进行切片,并创建一个名为new的新数组。现在我想用new替换List,这样当for循环第二次运行时,它会从new而不是从List切片值。那我该怎么做呢 def update(): low =[1.5, 2.5, 3.0] high = [4.0, 4.5, 5.0] for i in range(len(low)): h1 = low[i] h2 = h

在下面的代码中,我有一个名为
List
的数组。当for循环第一次运行时,我对该数组的一些值进行切片,并创建一个名为
new
的新数组。现在我想用
new
替换
List
,这样当for循环第二次运行时,它会从
new
而不是从
List
切片值。那我该怎么做呢

def update():
    low =[1.5, 2.5, 3.0]
    high = [4.0, 4.5, 5.0]
    for i in range(len(low)):
        h1 = low[i]
        h2 = high[i]
        List=np.arange(1.0, 5.01, 0.5)
        hList =[]
        for k in range(len(List)):
            hList.append(round(List[k],2))

        low_ind =hList.index(low[i])
        high_ind = hList.index(high[i])
        #Slicing
        List = List[low_ind:high_ind]``
这是结果

`i is:  0
List:  [1.  1.5 2.  2.5 3.  3.5 4.  4.5 5. ]
After_Slicing
[1.5 2.  2.5 3.  3.5]

i is:  1
List:  [1.  1.5 2.  2.5 3.  3.5 4.  4.5 5. ]
After_Slicing
[2.5 3.  3.5 4. ]

i is:  2
List:  [1.  1.5 2.  2.5 3.  3.5 4.  4.5 5. ]
After_Slicing
[3.  3.5 4.  4.5]`

不完全确定要执行的操作,但添加以下行:

        #Slicing
        new = List[low_ind:high_ind]
        List = new #This line

似乎正在更新列表。

List=new
?…不,它不更新为什么首先需要
new
?只需编写
List=List[low\u ind:high\u ind]
将数组命名为“List”有点令人困惑,但我想这并不像更常见的将列表命名为“array”的做法那么糟糕;)@herry是的,它是这样的,或者它显示了一个错误,我也以这种方式更新了,但我没有得到所需的结果。所需的结果是什么?当I=0时,切片后我得到[1.5,2.5,3,3.5]。但当i=1且i打印列表与之前相同时。它应该是[1.5,2,2.5,3,3.5],您要为每次跑步重新说明列表:List=np.arange(1.0,5.01,0.5)。只要把它放在for循环之外就可以了。是的,但是当您调用write:
List=np.arange(1.0,5.01,0.5)
时,它将始终是相同的,因为您将它设置回默认值。如果您在for循环之外执行此操作,则不会让它一次又一次地变得相同。但是,您将得到另一个错误。