Раздел помощи SpaceWeb

Как создать массив в Python: инструкция

22 фев, 2024

В этой статье мы предоставим вам информацию о массивах и о том, как создавать их на Пайтоне. Кроме того, вы ознакомитесь с простыми примерами, чтобы лучше понять, как создать массив в Python.

Что такое массив

Массив – это структура данных, предназначенная для хранения коллекции некоторых элементов. У каждого из них есть свой собственный индекс или ключ доступа. 

Элементы в массиве обычно хранятся последовательно, и каждый элемент может быть доступен по своему индексу.

В Python по умолчанию отсутствуют классические массивы; их роль выполняют списки. Тем не менее, если необходимо, можно использовать функцию создания массивов. А значит, утверждение, что массивы отсутствуют в Python, не совсем верно. Они все равно доступны, но добавляются через импорт специальной функции, о чем мы и поговорим далее.

Список в Python представляет собой упорядоченную коллекцию элементов, которые могут быть изменяемыми (то есть, вы можете изменять, добавлять или удалять элементы). Элементы списка могут быть разных типов данных.

Отличия списков и массивов

Основное различие между ними заключается в том, что списки в Python могут содержать разнородные данные, в то время как массивы могут хранить данные только одного типа. Например, список может включать в себя как строки, так и числа, как целые числа, так и с плавающей точкой – и все это в рамках одного списка. 

Пример такого списка выглядит следующим образом:

мой_список = ['эл1', 'эл2', 'эл3']

Этот список выполняет функции массива. Элементы списка располагаются внутри квадратных скобок и перечисляются через запятую. Здесь использованы строки в качестве примера. 

Давайте рассмотрим еще один пример:

different = ['17', 'строка', '32.5', ['список_в_списке', '17', 'строка', '32.5']]
print(different)

Это тоже список с функциональностью массива, поскольку все элементы представлены в виде строк. 

Теперь рассмотрим следующий пример:

different2 = [17, 'строка', 32.5, ['списoк_в_спискe', '17', 'строка', '32*8']]
print(diffеrеnt2)

Такой список уже не является классическим массивом, так как он объединяет разнородные элементы: целое число, строку, число с плавающей точкой и список. Списки включают в себя функции массивов, но их собственные возможности более обширны.

Возникает вопрос: зачем использовать отдельный модуль для создания массивов, если можно пользоваться списками, которые объединяют обе функции? Однако на то есть веская причина: Python массивы, которые вызываются отдельно, обладают большей компактностью и потребляют меньше памяти. Это особенно полезно при работе с ресурсоемкими приложениями и выполнении низкоуровневых операций.

Как импортировать модуль array в Python

Для создания массивов в Python сначала необходимо импортировать модуль array, который содержит все необходимые функции.

Существует три способа импорта модуля array:

  1. Использование import array в начале файла:

Такой способ включает в себя модуль array. Затем вы можете создать массив, используя array.array().
   
   import array

   # Создаем массив
   array.array()

   

  1. Вместо того, чтобы каждый раз писать array.array(), вы можете использовать import array as arr в начале файла, вместо простого import array. Затем вы создаете массив, набирая arr.array(). Псевдоним arr – это что-то вроде альтернативного имени, а сразу за ним следует конструктор массива.   

   import array as arr

   # Создаем массив
   arr.array()

  1. Также можно использовать from array import *, где «*» импортирует все доступные функциональности. Затем вы можете создать массив, написав конструктор array() самостоятельно.

   from array import *

   # Создаем массив
   array()

Работа с массивом в Python

Как создать массивы в Python

После того как вы импортировали модуль array, вы можете приступить к созданию массива в Python.

Общий синтаксис создания массива выглядит следующим образом:

имя_переменной = array(тип_данных, [элементы])

Давайте разберем его более подробно:

  • «имя_переменной» – это имя массива.
  • «тип_данных» указывает, какого типа будут элементы в массиве. Будет ли это массив целых чисел, массив чисел с плавающей точкой или массив любого другого типа данных Python – все это вы можете указать в этом разделе. 

Важно! Помните, что все элементы должны быть одного и того же типа данных.

  • В квадратных скобках вы указываете элементы, которые будут храниться в массиве, при этом каждый элемент разделяется запятой. Вы также можете создать пустой массив, написав просто «имя_переменной = array(тип_данных)» без каких-либо элементов.

Параметры, которые принимаются методом array()

Внизу приведена таблица типов данных (typecode) с различными кодами типов, которые могут при создании массивов в Python:

Как видно в таблице выше, вы можете использовать код типа 'i' для хранения целочисленных значений в массиве, или 'f' для значений с плавающей точкой и так далее.

Инициализаторы – это набор значений одного типа, например, [01, 02, 03] или ["абв", "где", "ёжз"], и так далее.

Вот пример того, как можно создать массив в Python:

import array as arr

numbers = arr.array('i', [21, 32, 43])

print(numbers)

Вывод:

array('i', [21, 32, 43])

Давайте разберем этот пример поподробнее:

  • Сначала мы включили модуль array, в данном случае с помощью import array as arr.
  • Затем мы создали массив с именем numbers.
  • Внутри конструктора array() мы сначала указали i для знакового целого числа. Знаковое целое число означает, что массив может содержать как положительные, так и отрицательные значения. Например, H для беззнакового целого числа означает, что отрицательные значения не допускаются.
  • Наконец, в квадратных скобках мы указали значения для хранения в массиве.

Запомните, что если вы попытаетесь включить значения, которые не являются типом i, то есть не являются целочисленными значениями, вы получите ошибку:

import array as arr 

numbers = arr.array('i',[21.1,32,43])

print(numbers)

Вывод:

Traceback (most recent call last):
  File "/Users/lissa/PycharmProjects/pythonProject1/main.py", line 3, in <module>
    numbers = arr.array('i',[21.1,32,43])

В приведенном выше примере мы попытались включить в массив число с плавающей точкой, но получили ошибку, так как этот массив предназначен только для целых чисел.

Есть еще один способ создать массив:

from array import *

numbers = array('d',[21.1,32.2,43.3])

print(numbers)

Вывод:

array('d', [21.1, 32.2, 43.3])

Приведенный выше пример импортировал модуль array с помощью from array import * и создал массив numbers с данными типа float. Это означает, что он содержит только числа с плавающей точкой, что и указано кодом типа 'd'.

Как найти длину массива в Python

Чтобы узнать точное количество элементов в массиве, используйте встроенный метод len().

Он вернет целое число, равное общему количеству элементов в указанном вами массиве.

import array as arr 

numbers = arr.array('i',[11,22,33])

print(len(numbers))

Вывод:

3

В приведенном выше примере массив содержал три элемента – 11, 22, 33 – поэтому длина массива numbers равна 3.

Индексирование массива и как получить доступ к отдельным элементам в массиве в Python

Каждый элемент в массиве имеет свой уникальный адрес. К отдельным элементам можно получить доступ, лишь обратившись к их номеру индекса.

Индексация в Python, как и во всех языках программирования и в области вычислений в целом, начинается с 0. 

Важно! Да, нумерация начинается с 0, а не с 1.

Для доступа к элементу сначала вписывается имя массива, за которым следуют квадратные скобки. Внутри квадратных скобок указывается индекс элемента.

Общий синтаксис выглядит примерно так:

имя_массива[индекс_значения_элемента]

Вот как можно получить доступ к каждому отдельному элементу в массиве:

import array as arr 

numbers = arr.array('i',[21,32,43])

print(numbers[0]) 
print(numbers[1])  
print(numbers[2]) 

Вывод:

21
32
43

Помните, что значение индекса последнего элемента в массиве всегда на единицу меньше длины массива. Если n – длина массива, то n = 1 будет индексом последнего элемента.

Обратите внимание, что вы также можете получить доступ к каждому отдельному элементу с использованием отрицательного индексирования.

При отрицательном индексировании у последнего элемента индекс равен -1, у предпоследнего – -2 и так далее.

Вот как можно получить каждый элемент в массиве, используя этот метод:

import array as arr 

numbers = arr.array('i',[21,32,43])

print(numbers[-1])  
print(numbers[-2])
print(numbers[-3]) 

Вывод:

21
32
43

Как осуществить поиск в массиве в Python

Вы можете узнать номер индекса элемента, используя метод index().

В качестве аргумента для метода передается значение искомого элемента, а затем возвращается номер его индекса.

import array as arr 

numbers = arr.array('i',[21,32,43])

#Ищем индекс 21
print(numbers.index(21))

Вывод:

0

Если в массиве есть больше одного элемента с одинаковым значением, то возвращен будет индекс первого вхождения этого значения:

import array as arr 

numbers = arr.array('i',[21,32,43,21,32,43])

#Ищем индекс 21
#В выводе будет возвращен номер индекса первого вхождения значения 21
print(numbers.index(21))

Вывод:

0

Как выполнить цикл по массиву в Python

Вы узнали, как получить доступ к каждому отдельному элементу в массиве и вывести его на экран по отдельности.

Кроме того, вы уже знаете, как вывести весь массив, используя метод print(). 

Этот метод дает следующий результат:

import array as arr 

numbers = arr.array('i',[21,32,43])

print(numbers)

Вывод:

array('i', [21, 32, 43])

Но что, если вы хотите вывести каждое значение поочередно?

В этом случае пригодится цикл. Вы можете выполнить цикл по массиву и вывести каждое значение поочередно на каждой итерации цикла.

Для этого можно использовать простой цикл for:

    
 
Вывод:

21
32
43

Вы также можете использовать функцию range() и передать ей метод len() в качестве параметра. Это даст тот же результат, что и выше:

import array as arr  

values = arr.array('i',[21,32,43])

for value in range(len(values)):
    print(values[value])

Вывод:

21
32
43

Методы массивов в Python

Вы можете изменять значение различных элементов массивов, добавлять новые или удалять те, которые больше не нужны в вашей программе.

Давайте рассмотрим некоторые из наиболее часто используемых методов, которые применяются для выполнения операций с массивами.

  1. Как изменить значение элемента в массиве

Вы можете изменить значение конкретного элемента, указав его позицию и присвоив ему новое значение:

import array as arr 

#Изначальный массив
numbers = arr.array('i',[21,32,43])

#Поменять первый элемент
#Поменять его с 10 на 40
numbers[0] = 40

print(numbers)

Вывод:

array('i', [40, 32, 43])

  1. Как добавить новое значение в массив

Чтобы добавить одно значение в конец массива, используйте метод append():

import array as arr 

#Изначальный массив
numbers = arr.array('i',[21,32,43])

#Добавить целое число 40 в конец numbers
numbers.append(40)

print(numbers) 

Вывод:

array('i', [21, 32, 43, 40])

Обратите внимание, что новый элемент, который вы добавляете, должен быть того же типа данных, что и остальные элементы в массиве.

Взгляните, что произойдёт, если добавить число с плавающей точкой в массив целых чисел:

import array as arr 

#Изначальный массив
numbers = arr.array('i',[21,32,43])

#Добавить число с плавающей точкой 40.5 в конец numbers
numbers.append(40.5)

print(numbers)

Вывод:

File "Users/lissa/PycharmProjects/pythonProject1/main.py", line 7, in <module>
   numbers.append(40.5)

Но что, если вы хотите добавить более одного значения в конец массива?

Используйте метод extend(), который принимает в качестве аргумента итерируемый объект (например, список элементов). Опять же, убедитесь, что новые элементы имеют тот же тип данных.

import array as arr 

#Изначальный массив
numbers = arr.array('i',[21,32,43])

#Добавить целые числа 40,50,60 в конец numbers
#Числа должны быть заключены в квадратные скобки

numbers.extend([40,50,60])

print(numbers)

Вывод:

array('i', [21, 32, 43, 40, 50, 60])

Если вы не хотите добавлять элемент в конец массива, воспользуйтесь методом insert(), чтобы добавить элемент в конкретную позицию.

Функция insert() принимает два аргумента: индекс позиции, куда будет вставлен новый элемент, и значение нового элемента.

import array as arr 

#Изначальный массив
numbers = arr.array('i',[21,32,43])

#Добавить целое число 45 на первую позицию
#Не забывайте, что индексация начинается с 0

numbers.insert(0,40)

print(numbers)

Вывод:

array('i', [40, 21, 32, 43])

  1. Как удалить значение из массива

Чтобы удалить элемент из массива, используйте метод remove() и включите значение в качестве аргумента метода.

import array as arr 

#Изначальный массив
numbers = arr.array('i',[21,32,43])

numbers.remove(21)

print(numbers)

Вывод:

array('i', [32, 43])

С помощью remove() будет удален только первый экземпляр значения, переданного в качестве аргумента.

Посмотрите, что происходит, когда есть более одного идентичного значения:

import array as arr 

#Изначальный массив
numbers = arr.array('i',[21,32,43,21,32])

numbers.remove(21)

print(numbers)

Вывод:

array('i', [32, 43, 21, 32])

Удален только первый экземпляр числа 10.

Вы также можете использовать метод pop() и указать позицию элемента, который нужно удалить:

import array as arr 

#Изначальный массив
numbers = arr.array('i',[21,32,43,21,32])

#Удалите первый экземпляр числа 21
numbers.pop(0)

print(numbers)

Вывод:

array('i', [32, 43, 21, 32])

Заключение

Массивы – это важная часть программирования, которая обеспечивается эффективное хранение и управление данными. В этой статье мы погрузились в мир создания и работы с массивами в Python, освоив ключевые концепции и операции этой технологии.