Генераторы словарей и модули Рython
Функции в языке Python Функции в языке PythonВсе функции в языке Python возвращают какое-либо значение, хотя вполне возможно (и часто так и делается) просто игнорировать это значение. Возвращаемое значение может быть единственным значением или кортежем значений,...
Реализация генераторов Реализация генераторовМы рассмотрели коллекции-последовательности, tuple, collections, na-medtuple и list, поддерживающие, как и строки, возможность извлечения срезов. Также было рассмотрено использование оператора распаковывания...
Парсинг документов XML Парсинг документов XMLXML: Для парсинга документов XML широко используются два основных подхода. Один из них основан на анализе DOM (Document Object Model -объектная модель документа), а другой - на использовании SAX (Simple API for XML - упрощенный...
Копирование коллекций Копирование коллекцийКопирование коллекций: Поскольку в языке Python повсюду используются ссылки на объекты, когда выполняется оператор присваивания (=), никакого копирования данных на самом деле не происходит. Если справа от оператора находится литерал,...
Реализация генераторов
Мы рассмотрели коллекции-последовательности, tuple, collections, na-medtuple и list, поддерживающие, как и строки, возможность извлечения срезов. Также было рассмотрено использование оператора распаковывания последовательностей ( ) и коротко было упомянуто использование аргументов со звездочками в вызовах функций.

Мы также рассмотрели типы множеств set и f rozenset и типы отображений diet и collections.defaultdict. Мы узнали, как использовать именованные кортежи из стандартной библиотеки языка Python для создания своих собственных типов кортежей, доступ к элементам которых выполняется не только с помощью числовых индексов, но и более удобным способом - с помощью имен. Мы также увидели, как создавать "константы", используя для этого переменные, идентификаторы которых состоят исключительно из символов верхнего регистра.

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

Списки идеально подходят для хранения последовательностей элементов, особенно, когда необходим быстрый доступ к элементам по их индексам. При обсуждении типов set и f rozenset мы отметили, что они могут содержать только элементы хешируемых типов данных. Множества обеспечивают быструю работу оператора проверки на вхождение и удобны для фильтрации повторяющихся данных. Словари отчасти напоминают множества, например, ключами словарей могут быть только уникальные значения хешируемых типов данных, как и элементы множеств.

Но, в отличие от множеств, словари хранят пары ключ-значение, в которых значениями могут быть данные любых типов. При изучении словарей были охвачены методы diet.get и dict.setdefault , а при описании словарей со значениями по умолчанию были продемонстрированы альтернативы этим методам. Подобно множествам, словари предоставляют очень эффективный оператор проверки на вхождение и обеспечивают быстрый доступ к элементам по ключу.

Списки, множества, словари - все они имеют собственные реализации генераторов, которые могут использоваться для создания коллекций этих типов из итерируемых объектов (которые в свою очередь также могут быть генераторами), с наложением дополнительных условий, если это необходимо. Функции гапде и zip часто используются для создания коллекций; обе эти функции удобно использовать в циклах for ... in и в генераторах.
Навигация: 1 2
 
 
© Copyright