Главная » Просмотр файлов » Саммерфилд - Программирование на Python 3

Саммерфилд - Программирование на Python 3 (1077331), страница 32

Файл №1077331 Саммерфилд - Программирование на Python 3 (Саммерфилд - Программирование на Python 3) 32 страницаСаммерфилд - Программирование на Python 3 (1077331) страница 322018-01-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 32)

Множества также могут использоваться для удаления требуемых элементов. Например, если представить, что у нас имеется список имен файлов и нам необходимо исключить из него файлы с инструкциями по сборке (возможно, по той простой причине, что они генерируются автоматически, а не создаются вручную), мы могли бы использовать следующий прием: гв1епавея = яег(г(1епавея) Гог ваКеев1е ш ("МАКЕЕ1(Е", "МаКее11е", "ваКеГ11а"): Г11епавеяннясагп(ваКеев1е) Этот фрагмент удалит все ша)се11)е, присутствующие в списке, имена которых следуют стандарту использования заглавных символов, Этот фрагмент ничего не будет делать, если в списке отсутствуют искомые файлы. То же самое может быть реализовано в одной строке программного кода при помощи оператора получения разности множеств (-): 111епавея = яе1(ег1епавея) - ("МАКЕЕ1СЕ", "МаКеГ~1е", "ваКеГ11е") Кроме того, мы могли бы удалить элементы с помощью метода яес.

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

Генератор множества — это выражение и цикл с необязательным условием, заключенные в фигурные скобки. Подобно генераторам списков, генераторы множеств поддерживают две формы записи: Глава 3. Типы коллекций !ехргеаюоп гог Ыеа !п >Гега01е) (ехргевв!оп гог !геа 1п !сегал)е 1! оопп!!!оп) Мы могли бы использовать генераторы множеств для фильтрации нежелательных элементов (когда порядок следования элементов не имеет значения), как показано ниже: та1 = (х !сг х 1П !11ев !! х.)оаег().епйва11П((". Пга", ". Пга1"))) Если предположить, что Т!1еэ — это список имен файлов, то данный генератор множества создает множество П(а1, в котором хранятся только имена файлов с расширениями .лгт и .Ит), независимо от регистра символов. Как и в случае с генераторами списков, в генераторах множеств используются итерируемые объеты, которые в свою очередь могут быть генераторами множеств (или генераторами любого другого типа), что позволяет создавать весьма замысловатые генераторы множеств.

ТИП ФГОгЕПбЕ1 Фиксированное множество (Ггагепве1) — это множество, которое после создания невозможно изменить. Хотя при этом мы, конечно, можем повторно связать переменную, которая ссылалась на фиксированное множество, с чемто другим. Фиксированные множества могут создаваться только в результате обращения к имени типа Г готепвег как к функции. При вызове Ггогепвег() без аргументов возвращается пустое фиксированное множество; с аргументом типа Тгогепвв! возвращается поверхностная копия аргумента; если аргумент имеет другой тип, выполняется попытка преобразовать его в объект типа 1гогепвес.

Эта функция принимает не более одного аргумента. Поскольку фиксированные множества относятся к категории неизменяемых объектов, они поддерживают только те методы и операторы, которые воспроизводят результат, не оказывая воздействия на фиксированное множество или на множества, к которым они применяются. В табл. 3.2 (на стр. 147) перечислены все методы множеств из которых фиксированными множествами поддерживаются: !готепве1.

сору(), )голвпве1.с!!Гегепсе() (-), Гготепве1. !п1егвес1!оп() ())), Гголепве1, !вс!в)о!пг(), !говепве1.!ввоьвег() (<= и < для выявления подмножеств), !гсхепввг.!ввирегве1() (>= и > для выявления надмножеств), Ггсгепве1. ип!оп() ()) и ггогепвег. зуаве)г!с О!)1егепсе() ( ), — то есть все те, что помечены в таблице знаком сноски ". Если двухместный оператор применяется ко множеству и фиксированному множеству, тип результата будет совпадать с типом операнда, стоящего слева от оператора. То есть если предположить, что à — это фиксированное множество, а в — зто обычное множество, то выражение ! 6 в вернет объект типа Гговвпвег, а выражение в а ! — объект ти- Отображения па ае!. В случае операторов == и! = порядок операндов не имеет значения, и выражение Г == з вернет Тгое, только если оба множества содержат одни и те же элементы.

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

Отображения Отображениями называются типы данных, поддерживающие оператор проверки на вхождение (ш), функцию 1еп() и возможность обхода элементов в цикле. Отображения — это коллекции пар элементов «ключ-значение», которые предоставляют методы доступа к элементам и их ключам и значениям. При выполнении итераций порядок следования элементов отображений может быть произвольным. В языке Ру!)топ имеется два типа отображений: встроенный тип атс! и тип со11ест!опа.

Зеуаа1тс!ст, определяемый в стандартной библиотеке. Мы будем испольэовать термин словарь для ссылки на любой из этих типов, когда различия между ними не будут иметь никакого значения. В качестве ключей словарей могут использоваться тольХешируемые ко хешируемые объекты, поэтому в качестве ключей еаее„те, словаря такие неизменяемые типы, как Г1оат, Ггоаепает, стр.!45 !пт, а! г и тар1е, использовать допускается, а изменяемые типы, такие как атс !, 1 та! и ает, — нет. С другой стороны, каждому ключу соответствует некоторое значение, которое может быть ссылкой на объект любого типа, включая числа, строки, списки, множества, словари, функции и т. д. Словари могут сравниваться с помощью стандартных операторов сравнения («, =, ==,!=, » ), при этом сравнивание производится поэлементно (и рекурсивно, при наличии вложенных элементов, таких как кортежи или словари в словарях).

Пожалуй, единственными операторами сравнения, применение которых к словарям имеет смысл, являются операторы == и! =. Словари Тип йтс! — это неупорядоченная коллекция из нуля или более пар «ключ-значение», в которых в качестве ключей могут использоваться ссылки на хешируемые объекты, а в качестве значений — ссылки на объекты любого типа. Словари относятся к категории изменяемых типов, поэтому легко можно добавлять и удалять их элементы, но так Глава 3. Типы коллекций Тип данных стет может вызываться как функция 0101( )— без аргументов она возвращает пустой словарь; если в качестве аргумента передается отображение, возвращается словарь, основанный на этом отображении: например, с аргументом типа т)ас1 возвращается поверхностная копия словаря.

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

Кроме того, словари могут создаваться с помощью фигурных скобок — пустые скобки () создадут пустой словарь. Непустые фигурные скобки должны содержать один или более элементов, разделенных запятыми, каждый из которых состоит из ключа, символа двоеточия и значения. Еще один способ создания словарей заключается в использовании генераторов словарей — эта тема будет рассматриваться ниже, в соответствующем подразделе. о Именованные аргументы, стр. 206 о Генераторы словарей, стр.

160 ятся несколько способов создания словарей — все они соз- от же словарь: Ниже привод дают один и т о1 = отст(("то": 1948, "пане": "иавпег', "втае": 3)) 02 = отсс(то=1948, памеы'иавпег", в)ае=3) 03 = отст((("то", 1948), ("пане", "иавпег"), ("ваке", 3))) О4 = Отсс(а!р(("тп", "папе", "вые"), (1948, "Иавнег", 3))) О5 = ("тс": 1948, "пане": "Иавнег", "стае": 3) Словарь 61 создается с помощью литерала словаря.

Словарь о2 создается с помощью именованных аргументов. Словари 03 и 04 создаются из последовательностей, а словарь 05 создается из литерала словаря. Встроенная функция атр(), использованная при создании словаря 64, возвращает список кортежей, первый из которых содержит первые элементы всех итерируемых аргументов функции ыр(), второй — вторые элементы и т. д.

Синтаксис, основанный на применении именованных аргументов (использованный при создании словаря 02), обычно является наиболее компактным и удобным, но при этом ключами могут быть только допустимые идентификаторы. о Функция а1р(), стр. 169 как они являются неупорядоченными коллекциями, к ним не приме- нимо понятие индекса и не применима операция извлечения среза. Глава 3. Типы коллекций Таблица З.З. Методы словарей Синтаксис Описание 0.с1еаг() 0 сору() Возвращает словарь типа 01сс, ключами которого являются элементы последовательности в, а значениями либо лопе, либо и, если аргумент и определен 0.(гоикеув( в, ч) Возвращает значение ключа К или лопе, если ключ К отсутствует в словаре Возвращает значение ключа к или ч, если ключ к отсутствует в словире Возвращает представление' всех пар (ключ, значение) в словаре 0 Возвращает представление всех ключей словаря а Возвращает значение ключа К и удаляет из словаря элемент с ключом К или возбуждает исключение КеуЕггог, если ключ К отсутствует в словаре Возвращает значение ключа К и удаляет из словаря элемент с ключом К или возвращает значение ч, если ключ К отсутствует в словаре а.рор(К, ч) Возвращает и удаляет произвольную пару (ключ, значение) из словаря 0 или возбуждает исключение КеуЕггог, если словарь 0 пуст а.рор1теа() а.веыегвч11( То же, что и атст.оет() за исключением того, что, если ключ к К, и) в словаре отсутствует, в словарь вставляется новый элемент с ключом К и со значением лопе или и, если аргумент ч задан Добавляет в словарь 0 пары (ключ, значение) из а, которые отсутствуют в словаре 0, а для каждого ключа, который уже присутствует в словаре О, выполняется замена соответствующим значением из а; а может быть словарем, итерируемым объектом с парами (ключ, значение) или именованными аргументами а.ораате(а) Возвращает представление' всех значений в словаре 0 а.ча1оев() Представления словарей можно трактовать и использовать как итерируе- мые объекты.

Характеристики

Тип файла
DJVU-файл
Размер
6,88 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6390
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее