Ответ
В 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
Выбор структуры данных критичен и зависит от требований задачи: нужен ли порядок, изменяемость, уникальность элементов, скорость доступа или вставки.