Python程式:從指定索引處插入多個元素到陣列


陣列是有序儲存的一組相同資料元素的集合。陣列中的每個資料元素都由一個索引值標識。

Python中的陣列

Python沒有原生的陣列資料結構。因此,我們可以使用列表資料結構作為陣列的替代。

[10, 4, 11, 76, 99]

我們也可以使用Python的NumPy模組來處理陣列。

NumPy模組定義的陣列為:

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

Python的索引從0開始,因此上述陣列元素可以使用它們各自的索引值(0, 1, 2,直到n-1)訪問。

在下面的文章中,我們將看到在指定索引處插入多個元素到陣列的不同方法。

輸入輸出場景

假設我們有一個包含4個整數值的陣列A。結果陣列將在指定索引位置插入多個元素。

Input array:
[9, 3, 7, 1]
Output array:
[9, 3, 6, 2, 10, 7, 1]

在索引位置2處插入元素6、2、10,元素數量增加到7。

Input arrays:
[2 4 6 8 1 3 9]
Output array:
[1 1 1 2 4  6 8 1 3 9]

這裡在第0個索引位置插入元素1、1、1。

使用列表切片

為了在指定索引處插入多個元素,我們可以使用列表切片。

示例

在這個例子中,我們將使用列表切片。

l = [2, 3, 1, 4, 7, 5]
# print initial array
print("Original array:", l)

specified_index = 1
multiple_elements = 10, 11, 12

#  insert element
l[specified_index:specified_index] =  multiple_elements

print("Array after inserting multiple elements:", l)

輸出

Original array: [2, 3, 1, 4, 7, 5]
Array after inserting multiple elements: [2, 10, 11, 12, 3, 1, 4, 7, 5]

使用列表連線

使用列表切片和列表連線,我們將建立一個函式,以便在指定位置插入多個元素。Python列表沒有任何方法可以在指定位置插入多個元素。

示例

這裡我們將定義一個函式,以便在給定索引處插入多個元素。

def insert_elements(array, index, elements):
    return array[:index] + elements + array[index:]

l = [1, 2, 3, 4, 5, 6]
# print initial array
print("Original array: ", l)

specified_index = 2
multiple_elements = list(range(1, 4))

# insert element
result = insert_elements(l, specified_index, multiple_elements)

print("Array after inserting multiple elements: ", result)

輸出

Original array: [1, 2, 3, 4, 5, 6]
Array after inserting multiple elements: [1, 2, 1, 2, 3, 3, 4, 5, 6]

insert_elements函式在第2個索引位置插入了從1到4的元素。

使用numpy.insert()方法

在這個例子中,我們將使用numpy.insert()方法在給定的索引處插入多個值。以下是語法:

numpy.insert(arr, obj, values, axis=None)

此方法返回帶有插入值的輸入陣列的副本,但它不會更新原始陣列。

示例

在這個例子中,我們將使用**numpy.insert()**方法在第2個索引位置插入3個元素。

import numpy as np

arr = np.array([2, 4, 6, 8, 1, 3, 9])
# print initial array
print("Original array: ", arr)

specified_index = 2
multiple_elements = 1, 1, 1

#  insert element
result = np.insert(arr, specified_index, multiple_elements)

print("Array {} after inserting multiple elements at the index {} ".format(result,specified_index))

輸出

Original array:  [2 4 6 8 1 3 9]
Array [2 4 1 1 1 6 8 1 3 9] after inserting multiple elements at the index 2

3個元素1、1、1成功插入到陣列**arr**的第2個位置。

示例

在這個例子中,我們將使用所有元素都是字串的NumPy陣列。

import numpy as np
arr = np.array(['a','b', 'c', 'd'])
# print initial array
print("Original array: ", arr)
specified_index = 0
multiple_elements = list('ijk')
#  insert element
result = np.insert(arr, specified_index, multiple_elements)

print("Array {} after inserting multiple elements at the index {} ".format(result,specified_index))

輸出

Original array:  ['a' 'b' 'c' 'd']
Array ['i' 'j' 'k' 'a' 'b' 'c' 'd'] after inserting multiple elements at the index 0

元素'i' 'j' 'k'在第0個索引位置插入。

更新於:2023年5月29日

2K+ 瀏覽量

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.