что такое коллекция в python

Python: коллекции, часть 1/4: классификация, общие подходы и методы, конвертация

Часть 1Часть 2Часть 3Часть 4

что такое коллекция в python. Смотреть фото что такое коллекция в python. Смотреть картинку что такое коллекция в python. Картинка про что такое коллекция в python. Фото что такое коллекция в pythonКоллекция в Python — программный объект (переменная-контейнер), хранящая набор значений одного или различных типов, позволяющий обращаться к этим значениям, а также применять специальные функции и методы, зависящие от типа коллекции.

Частая проблема при изучении коллекций заключается в том, что разобрав каждый тип довольно детально, обычно потом не уделяется достаточного внимания разъяснению картины в целом, не проводятся чёткие сходства и различия между типами, не показывается как одну и туже задачу решать для каждой из коллекций в сравнении.

Вот именно эту проблему я хочу попытаться решить в данном цикле статей – рассмотреть ряд подходов к работе со стандартными коллекциями в Python в сравнении между коллекциями разных типов, а не по отдельности, как это обычно показывается в обучающих материалах. Кроме того, постараюсь затронуть некоторые моменты, вызывающие сложности и ошибки у начинающих.

Для кого: для изучающих Python и уже имеющих начальное представление о коллекциях и работе с ними, желающих систематизировать и углубить свои знания, сложить их в целостную картину.

Будем рассматривать стандартные встроенные коллекционные типы данных в Python: список (list), кортеж (tuple), строку (string), множества (set, frozenset), словарь (dict). Коллекции из модуля collections рассматриваться не будут, хотя многое из статьи должно быть применимым и при работе с ними.

ОГЛАВЛЕНИЕ:

1. Классификация коллекций

что такое коллекция в python. Смотреть фото что такое коллекция в python. Смотреть картинку что такое коллекция в python. Картинка про что такое коллекция в python. Фото что такое коллекция в python

что такое коллекция в python. Смотреть фото что такое коллекция в python. Смотреть картинку что такое коллекция в python. Картинка про что такое коллекция в python. Фото что такое коллекция в python

Пояснения терминологии:

Индексированность – каждый элемент коллекции имеет свой порядковый номер — индекс. Это позволяет обращаться к элементу по его порядковому индексу, проводить слайсинг («нарезку») — брать часть коллекции выбирая исходя из их индекса. Детально эти вопросы будут рассмотрены в дальнейшем в отдельной статье.

Уникальность – каждый элемент коллекции может встречаться в ней только один раз. Это порождает требование неизменности используемых типов данных для каждого элемента, например, таким элементом не может быть список.

Изменяемость коллекции — позволяет добавлять в коллекцию новых членов или удалять их после создания коллекции.

Примечание для словаря (dict):

UPD: Важное замечание от sakutylev: Для того, чтобы объект мог быть ключом словаря, он должен быть хешируем. У кортежа, возможен случай, когда его элемент является не хешируемым объектом, и соответственно сам кортеж тогда тоже не является хешируемым и не может выступать ключом словаря.

2 Общие подходы к работе с любой коллекцией

Разобравшись в классификацией, рассмотрим что можно делать с любой стандартной коллекцией независимо от её типа (в примерах список и словарь, но это работает и для всех остальных рассматриваемых стандартных типов коллекций):

2.1 Печать элементов коллекции с помощью функции print()

2.2 Подсчёт количества членов коллекции с помощью функции len()

2.3 Проверка принадлежности элемента данной коллекции c помощью оператора in

x in s — вернет True, если элемент входит в коллекцию s и False — если не входит
Есть и вариант проверки не принадлежности: x not in s, где есть по сути, просто добавляется отрицание перед булевым значением предыдущего выражения.

Для словаря возможны варианты, понятные из кода ниже:

Можно ли проверять пары? Можно!

Для строки можно искать не только один символ, но и подстроку:

2.4 Обход всех элементов коллекции в цикле for in

В данном случае, в цикле будут последовательно перебираться элементы коллекции, пока не будут перебраны все из них.

Обратите внимание на следующие моменты:

Но чаще всего нужны пары ключ(key) — значение (value).

Чтобы этого избежать подобных побочных эффектов, можно, например, итерировать копию коллекции:

2.5 Функции min(), max(), sum()

3 Общие методы для части коллекций

что такое коллекция в python. Смотреть фото что такое коллекция в python. Смотреть картинку что такое коллекция в python. Картинка про что такое коллекция в python. Фото что такое коллекция в python

Объяснение работы методов и примеры:

Особые методы сравнения множеств (set, frozenset)

При равенстве множеств они одновременно и подмножество и надмножество друг для друга

4 Конвертация одного типа коллекции в другой

В зависимости от стоящих задач, один тип коллекции можно конвертировать в другой тип коллекции. Для этого, как правило достаточно передать одну коллекцию в функцию создания другой (они есть в таблице выше).

Обратите внимание, что при преобразовании одной коллекции в другую возможна потеря данны:

Дополнительные детали:

Это ограничение можно обойти, создав словарь комбинируя ключи со значениями с использованием zip():

Примечание: Самые мощные и гибкие способы — генераторы коллекций будут рассмотрены отдельно в четвертой части цикла, так как там много нюансов и вариантов использования, на которых редко заостряют внимание, и требуется детальный разбор.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *