如何用同一索引中的另一个新元素替换一个元素,并将前一个元素移动到下一个索引



我有这个问题,我想用一个新元素替换一个元素,而不是删除我替换的元素,我只是想让它移动到下一个索引。

import numpy as np
empty_arr = [0] * 5
arr = np.array(empty_arr)

inserted = np.insert(empty_arr, 1, 3)
inserted = np.insert(empty_arr, 1, 4) 
#Output: 
[0 4 0 0 0 0]

我不知道正确的语法,但我只是想替换元素34

#Expected Output:
[0 3 4 0 0 0] #move the element 4 to next index

您将第一次插入的结果放置在inserted变量中,但是您将从原始数组开始进行第二次插入并覆盖之前的结果。

您应该从上一个结果开始第二次插入:

inserted = np.insert(empty_arr, 1, 3)
inserted = np.insert(inserted, 1, 4)

顺便说一句,你必须使用numpy数组吗?常规Python列表似乎更适合:

empty_arr = [0] * 5
empty_arr.insert(1,3)
empty_arr.insert(1,4)
print(empty_arr)
[0, 4, 3, 0, 0, 0, 0] 

请注意,如果您希望结果中的4出现在3之后,则必须在索引1处以相反的顺序插入它们,或者在索引1处插入3后在索引2处插入4。

import numpy as np
empty_arr = [0] * 5
arr = np.array(empty_arr)

empty_arr = np.insert(empty_arr, 1, 3)
empty_arr = np.insert(empty_arr, 1, 4) 
#output
array([0, 4, 3, 0, 0, 0, 0])