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

Все встроенные типы данных языка Python могут использоваться как фабричные функции, например, тип данных str может вызываться как функция st г , которая при вызове без аргументов возвращает пустой строковый объект. Фабричная функция, передаваемая словарю со значениями по умолчанию, используется для создания значений по умолчанию для отсутствующих ключей. Обратите внимание, что имя функции - это ссылка на объект функции, поэтому, когда функция передается в качестве аргумента, передается одно только имя функции.

Когда вслед за именем функции записываются круглые скобки, они сообщают интерпретатору, что он должен вызвать эту функцию. Программа uniquewords2.py на одну строку длиннее, чем исходная программа uniquewordsLpy (import collections), а, кроме того, изменились строки создания и обновления словаря. Словарь со значениями по умолчанию words никогда не возбудит исключение KeyError. Теперь мы можем отказаться от использования метода diet. get и просто увеличивать значение элемента.

Когда будет обнаружено самое первое вхождение слова, будет создан новый элемент со значением О (к которому тут же будет прибавлено число 1), а при обнаружении каждого последующего вхождения число 1 будет добавляться к текущему значению. Мы закончили полный обзор всех встроенных типов коллекций языка Python и пары типов коллекций из стандартной библиотеки. В следующем разделе мы рассмотрим некоторые проблемы, общие для всех типов коллекций.
Навигация: 1 2
 
 
© Copyright