Изучаем структуры данных с Python. Часть 2
![Изучаем структуры данных с Python. Часть 2](/images/articles/data-structures-with-python2.jpg)
В предыдущей статье по структурам данных в Python мы говорили о наиболее часто используемых типах данных, таких как списки, словари и их разновидности. В сегодняшней статье мы рассмотрим массивы, как отдельный тип данных, также неизменяемый тип кортежей и рассмотрим строки как массивы символов Unicode
Структуры Данных Array(Массив).
Массивы являются одной из наиболее широко используемых и хорошо известных структур данных. В этом разделе мы поговорим о том, как работают массивы. Массивами называются структуры, которые содержат одни и те же данные вместе, каждый массив представляет собой единое целое, и данные в нем имеют один и тот же тип . Хотя списки и массивы разделены на других языках программирования, в Python они имеют одинаковый синтаксис. Если вы используете разные данные, они становятся списком, если вы используете одни и те же данные, они становятся массивом.
# значения от 1 до 10
arr = [1,2,3,4,5,6,7,8,9,10]
# Массив строк
arr1 = ["a" , "b" , "c"]
# получения значения по первому индексу
arr1[0]
# извлекаем значения по индексам от 1 до 4
arr[0:4]
# удаление элемента
del arr[0]
# добавление элемента в массив
arr.append(11)
вывод 1: a
вывод 2: [1, 2, 3, 4]
Структура данных Кортеж.
Кортежи - это еще одна структура данных, способная содержать компоненты любого типа данных. Однако при такой гибкости данные менее плотные, чем в типизированном массиве. В этом типе данные нельзя динамически удалять, редактировать или предпринимать какие-либо действия, хотя это часто рассматривается как недостаток, вы можете обратить это в свою пользу.
tuple = (1 , 2 , 3)
tuple[0]
tuple1 = ("x" , 1 , 1.25)
tuple1[2]
# попытка удаления или изменения приведет к ошибке
del tuple[0]
tuple[1] = "y"
вывод: 1
вывод: 1.25
Использование массива с библиотекой массивов Array.
Модуль массива Python хранит основные типы данных в стиле C, такие как байты, 32-разрядные целые числа, числа с плавающей запятой и так далее, эффективно используя пространство. В отличие от списков, он принимает только данные с одним и тем же типом.
Из-за этого ограничения объекты array.array со многими элементами более экономичны в памяти, чем списки и кортежи.
# Доступ к массиву
from array import array
arr = array("f" , [1.0 , 1.2])
Если вы используете IDE, она выдаст вам все коды типов. Выберите код типа в соответствии с данными, которые вы будете использовать. Любой тип кода, отличный от этого типа данных, не принимается.
Строки – Массивы символов Unicode.
Строковые объекты экономят место, так как они плотно упакованы и специализируются на определенном типе данных. Если вы хотите сохранить текст в Unicode, вам следует использовать строку. В этом разделе мы будем сохранять только тексты. При этом, каждый Юникод должен храниться в строковом объекте.
str = "55555"
emoji = "??"
print(str , emoji)
Байты и ByteArray
Байтовые объекты – это структуры, которые могут содержать числа от 0 до 255. Если вы превысите 255, то получите ошибку. То же самое верно для чисел ниже 0. Это высокопроизводительные и стабильные структуры, такие как строки. Если числа, с которыми вы имеете дело, находятся в этом диапазоне значений, будет полезно использовать байты.
x = bytes([1 , 2 , 3])
y = bytes([-1 , 2 , 3])
z = bytes([100 , 200 , 300])
вывод: b'\x01\x02\x03'
вывод: error
вывод: error
С помощью метода индексирования вы можете извлекать свои данные, но вы не можете редактировать, добавлять или удалять, как структуры кортежей. Однако вы можете добавлять, обновлять и удалять данные с помощью класса массива байтов.
x = bytearray((10 , 20 , 30))
# Изменяем данные
x[1] = 11
# Удаляем
del x[0]
# Добавляем
x.append(40)
# Выводим содержимое
for i in x:
print(i)
11
30
40
Таким образом, мы еще раз рассмотрели массивы, кортежи, байты и строки в качестве основных структур данных, которыми можно манипулировать, изменять их и строить работоспособные алгоритмы.
-
-
Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.