Алгебра отношений для множеств (внешний пример) Python

algebra otnoshenij dlya mnozhestv vneshnij primer python Структуры данных

Если вас интересует реализация дополнительных операций с множествами на языке Python, посмотрите следующие файлы в пакете примеров для книги:

PP4E\Dstruct\Basic\rset.py

Реализация класса RSet

PP4E\Dstruct\Basic\reltest.py

Сценарий для тестирования класса RSet — ожидаемый вывод этого сценария приводится в файле reltest.results.txt

Подкласс RSet, объявленный в файле rset.py, добавляет в множества, основанные на словарях, основные операции алгебры отношений. В нем предполагается, что элементы множеств являются отображениями (записями) с одним элементом в столбце (поле). Класс RSet наследует все оригинальные операции класса Set (итерацию, пересечение, объединение, операторы & и | , фильтрацию дубликатов и прочие) и добавляет новые операции в виде методов:

Select

Возвращает множество узлов, в которых поле равно заданному значению.

Bagof

Отбирает узлы, удовлетворяющие строке выражения.

Find

Отбирает кортежи согласно сравнению, полю и значению.

Match

Отыскивает в двух множествах узлы с одинаковыми значениями в общих полях.

Product

Вычисляет декартово произведение: формирует кортежи из двух множеств.

Join

Собирает кортежи из двух множеств, в которых некоторое поле имеет одинаковое значение.

Project

Извлекает указанные поля из кортежей в таблицу.

Difference

Удаляет кортежи одного множества из другого.

Эти операции не поддерживаются встроенными объектами множеств языка Python и наглядно демонстрируют, почему может потребоваться реализовать собственный тип множества. Хотя я и адаптировал этот программный код для работы под управлением Python 3.X, тем не менее, я не проводил сколько-нибудь глубокий его анализ при подготовке к включению в это издание, потому что сейчас я предпочел бы реализовать его как подкласс встроенного типа set, а не как полностью собственную реализацию множества. По случайному совпадению это ведет нас к следующей теме.

Использованная литература:

Марк Лутц — Программирование на Python, 4-е издание, II том, 2011

Каталог сайтов Всего.ру
Оцените статью
Секреты программирования
Добавить комментарий