В этом уроке по основам Python - мы рассмотрим массивы. В Python - массивы представлены в виде списков, но также есть и модуль array
, который предоставит возможность создания классических массивов.
Списки - это те же массивы, только имеют расширенный функционал, эти конструкции более удобны в использовании, но цена такого удобства как всегда - оперативность и затраченные ресурсы. И массив, и список являются упорядоченными коллекциями, но разница между ними в том, что классический массив может содержать элементы только одного типа, а список Python может содержать любой элемент.
Важно: более подробно прочитать про списки (массивы) Вы можете в этой статье: Списки / Массивы в Python - функции и методы списков
Давайте посмотрим, как выглядит обычный список в Python:
various_list = ['String', 1, ['23', 24.5, 'World'], 6/2, {1, 2, 3}]
print(various_list)
Именно так может выглядеть список, он может содержать любые типы элементов в массиве.
Модуль array - классические массивы
Если вам все же нужен классический массив, вы можете использовать встроенный модуль array
. Он почти не отличается от структуры списка, кроме разве что объявления.
Синтаксис:
variable_name = array(typecode,[elements])
Таблица typecodes:
TYPECODE | C TYPE | PYTHON TYPE | SIZE |
---|---|---|---|
'b' | signed char | int | 1 |
'B' | unsigned char | int | 1 |
'u' | wchar_t | Unicode character | 2 |
'h' | signed short | int | 2 |
'H' | unsigned short | int | 2 |
'i' | signed int | int | 2 |
'I' | unsigned int | int | 2 |
'l' | signed long | int | 4 |
'L' | unsigned long | int | 4 |
'q' | signed long long | int | 8 |
'Q' | unsigned long long | int | 8 |
'f' | float | float | 4 |
'd' | double | float | 8 |
Пример:
import array
int_array = array.array('i', [1, 2, 3, 4, 5])
print(int_array)
Результат:
>>> array('i', [1, 2, 3, 4, 5])
Но если мы захотим добавить не целочисленное значение, то получим ошибку:
import array
int_array = array.array('i', [1, 2, 3, 4, 5, 6.5])
print(int_array)
Ошибка:
>>> Traceback (most recent call last):
>>> File "C:\Users\Razilator\Desktop\Projects\Coding\articles\array\main.py", line 9, in <module>
>>> int_array = array.array('i', [1, 2, 3, 4, 5, 6.5])
>>> TypeError: 'float' object cannot be interpreted as an integer
Пример с числами с плавающей точкой:
import array
float_array = array.array('d', [1.2, 2.3, 3.4, 4.5])
print(float_array)
Результат:
>>> array('d', [1.2, 2.3, 3.4, 4.5])
Методы массива, такие же как и обычного списка:
float_array = array.array('d', [1.2, 2.3, 3.4, 4.5])
float_array_second = array.array('d', [7.8, 8.9])
# Вставка
float_array.insert(0, 2.3)
print(float_array)
# Добавление в конец
float_array.append(5.6)
print(float_array)
# Удаление
float_array.pop(4)
print(float_array)
# Срез
print(float_array[0:2])
# Объединение с другим массивом
float_array.extend(float_array_second)
print(float_array)
Результаты:
# Вставка
>>> array('d', [2.3, 1.2, 2.3, 3.4, 4.5])
# Добавление в конец
>>> array('d', [2.3, 1.2, 2.3, 3.4, 4.5, 5.6])
# Удаление
>>> array('d', [2.3, 1.2, 2.3, 3.4, 5.6])
# Срез
>>> array('d', [2.3, 1.2])
# Объединение с другим массивом
>>> array('d', [2.3, 1.2, 2.3, 3.4, 5.6, 7.8, 8.9])