Ответ
В Python основные встроенные структуры данных и структуры из модуля collections
включают:
-
Списки (
list
): Изменяемые, упорядоченные коллекции элементов. Используются для хранения последовательностей, где важен порядок и возможность изменения.my_list = [1, 2, 'three']
-
Кортежи (
tuple
): Неизменяемые, упорядоченные коллекции. Применяются для хранения фиксированных наборов данных, которые не должны меняться, обеспечивая их целостность.my_tuple = (1, 2, 'three')
-
Множества (
set
): Изменяемые, неупорядоченные коллекции уникальных элементов. Идеальны для операций с множествами (объединение, пересечение, разность) и быстрого поиска уникальности.my_set = {1, 2, 3}
-
Словари (
dict
): Изменяемые коллекции пар ключ-значение. Используются для быстрого доступа к данным по уникальному ключу, обеспечивая эффективное сопоставление.my_dict = {'a': 1, 'b': 2}
-
Строки (
str
): Неизменяемые последовательности символов. Основа для работы с текстовыми данными, поддерживают множество операций для их обработки.my_str = "Hello"
-
Массивы (
array.array
): Более эффективные по памяти списки для хранения однотипных числовых данных. Полезны для больших объемов чисел, когда важна производительность и экономия памяти.from array import array my_array = array('i', [1, 2, 3]) # 'i' для signed int
-
Двусторонние очереди (
collections.deque
): Очереди, поддерживающие эффективное добавление и удаление элементов с обоих концов (O(1)). Применяются для реализации очередей, стеков и других сценариев, где требуется быстрая работа с обоими концами коллекции.from collections import deque queue = deque([1, 2, 3])
-
Именованные кортежи (
collections.namedtuple
): Кортежи с именованными полями, улучшающие читаемость кода. Позволяют обращаться к элементам по имени, как к атрибутам объекта, при этом сохраняя легковесность кортежей.from collections import namedtuple Point = namedtuple('Point', ['x', 'y']) p = Point(10, 20) # print(p.x) # 10
Выбор структуры данных критичен и зависит от требований задачи: нужен ли порядок, изменяемость, уникальность элементов, скорость доступа или вставки.