`iter(seq)` создаст итератор по ключам |"> Конструкторы множеств - Pylot.me `iter(seq)` создаст итератор по ключам |" /> `iter(seq)` создаст итератор по ключам |" />
Перейти к содержанию

Конструкторы множеств

Для того чтобы создать список можно вызвать специальный конструктор списков. На самом деле, когда вы проверяете тип объекта с помощью вызова type(obj), то вы сразу видите, подсказку какой конструктор надо использовать. Например:

>>> type(['a', 'b', ])
<class 'list'>

Проверка типа говорит, что этот объект является экземпляром класса list. А, для того чтобы создать новый экземпляр класса список, надо вызвать его конструктор. Который работает так: вы вызываете имя класса и передаете ему параметры. Иногда параметров много, иногда ни одного. Для каждого типа в Python'е есть свой собственный конструктор класса.

Сводная таблица конструкторов для коллекций

Давайте быстро подведем итоги и сравним отличия списков, кортежей, множеств и строк, которые тоже ведут себя как множества:

Пункты сравнения Список Кортеж Set Строка Словарь
Назначение Хранить разные элементы Хранить неизменный список Хранить уникальные элементы Хранить текстовые строки Коллекции с доступом по ключу
Создание Квадратные скобки [] Круглые скобки () Фигурные скобки {} Кавычки ',", ''', """, r", b" {ключ: значение, ...}
Конструктор list() tuple() set() или frozenset() str() dict()
Срезы Доступны Доступны Не доступны Доступны Не доступны
Мутабельность Да Нет set — Да, frozenset — Нет Нет Да
Может быть ключом словаря Нет Да set — Нет, frozenset — Да Да Нет
Особенности Можно сортировать Неизменяемый Есть операции для множеств Есть методы для изменения строк Вместо индекса ключ, сохраняет порядок ключей
Генератор [x for x in range(10)] Нет Нет Нет {x: x*2 for x in range(10)}
Создание итераторов (x for x in range(10)) или iter(seq) Есть iter(seq) Есть iter(seq) Есть iter(seq) Есть, iter(seq) создаст итератор по ключам