Программа Python для вставки нескольких элементов в массив из указанного индекса
Массив — это совокупность однородных элементов данных, хранящихся в организованном порядке. И каждый элемент данных в массиве идентифицируется значением индекса.
Массивы в Python
Python не имеет собственной структуры данных массива. Таким образом, мы можем использовать структуру данных списка в качестве альтернативы массивам.
[10, 4, 11, 76, 99]
Также мы можем использовать модуль Python Numpy для работы с массивами.
Массив, определенный модулем numpy, —
array([1, 2, 3, 4])
Индексация в Python начинается с 0, так что доступ к вышеуказанным элементам массива осуществляется с использованием соответствующих значений индекса, таких как 0, 1, 2, до n-1.
В статье ниже мы видим различные способы вставки нескольких элементов в массив по указанному индексу.
Сценарии ввода-вывода
Предположим, у нас есть массив A с четырьмя целочисленными значениями. И в результирующий массив будет вставлено несколько элементов в указанную позицию индекса.
Input array:
[9, 3, 7, 1]
Output array:
[9, 3, 6, 2, 10, 7, 1]
Элементы 6, 2, 10 вставляются в позицию индекса 2, а количество элементов увеличивается до 7.
Input arrays:
[2 4 6 8 1 3 9]
Output array:
[1 1 1 2 4 6 8 1 3 9]
Здесь элементы 1 1 1 вставляются в 0-ю позицию индекса.
Использование нарезки списка
Чтобы вставить несколько элементов по указанному индексу, мы можем использовать срез списка.
Пример
В этом примере мы будем использовать нарезку списка.
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 вставила элементы от 1 до 4 во вторую позицию индекса.
Использование метода numpy.insert()
В этом примере мы будем использовать метод numpy.insert() для вставки нескольких значений по заданным индексам. Ниже приводится синтаксис:
numpy.insert(arr, obj, values, axis=None)
Метод возвращает копию входного массива со вставленными значениями. Но он не обновляет исходный массив.
Пример
В этом примере мы будем использовать метод numpy.insert() для вставки 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
Три элемента 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-ю позицию индекса.