В этой статье мы предоставим вам информацию о массивах и о том, как создавать их на Пайтоне. Кроме того, вы ознакомитесь с простыми примерами, чтобы лучше понять, как создать массив в Python.
- Что такое массив
- Отличия списков и массивов
- Как импортировать модуль array в Python
- Работа с массивом в Python
- Методы массивов в Python
Что такое массив
Массив – это структура данных, предназначенная для хранения коллекции некоторых элементов. У каждого из них есть свой собственный индекс или ключ доступа.
Элементы в массиве обычно хранятся последовательно, и каждый элемент может быть доступен по своему индексу.
В Python по умолчанию отсутствуют классические массивы; их роль выполняют списки. Тем не менее, если необходимо, можно использовать функцию создания массивов. А значит, утверждение, что массивы отсутствуют в Python, не совсем верно. Они все равно доступны, но добавляются через импорт специальной функции, о чем мы и поговорим далее.
Список в Python представляет собой упорядоченную коллекцию элементов, которые могут быть изменяемыми (то есть, вы можете изменять, добавлять или удалять элементы). Элементы списка могут быть разных типов данных.
Отличия списков и массивов
Основное различие между ними заключается в том, что списки в Python могут содержать разнородные данные, в то время как массивы могут хранить данные только одного типа. Например, список может включать в себя как строки, так и числа, как целые числа, так и с плавающей точкой – и все это в рамках одного списка.
Пример такого списка выглядит следующим образом:
Этот список выполняет функции массива. Элементы списка располагаются внутри квадратных скобок и перечисляются через запятую. Здесь использованы строки в качестве примера.
Давайте рассмотрим еще один пример:
print(different)
Это тоже список с функциональностью массива, поскольку все элементы представлены в виде строк.
Теперь рассмотрим следующий пример:
print(diffеrеnt2)
Такой список уже не является классическим массивом, так как он объединяет разнородные элементы: целое число, строку, число с плавающей точкой и список. Списки включают в себя функции массивов, но их собственные возможности более обширны.
Возникает вопрос: зачем использовать отдельный модуль для создания массивов, если можно пользоваться списками, которые объединяют обе функции? Однако на то есть веская причина: Python массивы, которые вызываются отдельно, обладают большей компактностью и потребляют меньше памяти. Это особенно полезно при работе с ресурсоемкими приложениями и выполнении низкоуровневых операций.
Как импортировать модуль array в Python
Для создания массивов в Python сначала необходимо импортировать модуль array, который содержит все необходимые функции.
Существует три способа импорта модуля array:
- Использование import array в начале файла:
Такой способ включает в себя модуль array. Затем вы можете создать массив, используя array.array().
import array
# Создаем массив
array.array()
- Вместо того, чтобы каждый раз писать array.array(), вы можете использовать import array as arr в начале файла, вместо простого import array. Затем вы создаете массив, набирая arr.array(). Псевдоним arr – это что-то вроде альтернативного имени, а сразу за ним следует конструктор массива.
import array as arr
# Создаем массив
arr.array()
- Также можно использовать from array import *, где «*» импортирует все доступные функциональности. Затем вы можете создать массив, написав конструктор array() самостоятельно.
from array import *
# Создаем массив
array()
Работа с массивом в Python
Как создать массивы в Python
После того как вы импортировали модуль array, вы можете приступить к созданию массива в Python.
Общий синтаксис создания массива выглядит следующим образом:
Давайте разберем его более подробно:
- «имя_переменной» – это имя массива.
- «тип_данных» указывает, какого типа будут элементы в массиве. Будет ли это массив целых чисел, массив чисел с плавающей точкой или массив любого другого типа данных 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
Обратите внимание, что вы также можете получить доступ к каждому отдельному элементу с использованием отрицательного индексирования.
При отрицательном индексировании у последнего элемента индекс равен -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
Вы можете изменять значение различных элементов массивов, добавлять новые или удалять те, которые больше не нужны в вашей программе.
Давайте рассмотрим некоторые из наиболее часто используемых методов, которые применяются для выполнения операций с массивами.
Вы можете изменить значение конкретного элемента, указав его позицию и присвоив ему новое значение:
import array as arr
#Изначальный массив
numbers = arr.array('i',[21,32,43])
#Поменять первый элемент
#Поменять его с 10 на 40
numbers[0] = 40
print(numbers)
Вывод:
array('i', [40, 32, 43])
Чтобы добавить одно значение в конец массива, используйте метод 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])
Чтобы удалить элемент из массива, используйте метод 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, освоив ключевые концепции и операции этой технологии.