Главная » Просмотр файлов » Лутц М. - Изучаем Python

Лутц М. - Изучаем Python (1077325), страница 49

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

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

Коли вы написали инструкцию вроде 'с='с. аррепб(Х), вы не получите измененное значение с (в действительности вы совсем потеряете ссылку на список) — использование таких атрибутов, как аррепб и эогт приводит к изменению самого объекта, поэтому нет никаких причин выполнять повторное присваивание. Как и строки, списки обладают рядом других методов, выполняющих специализированные операции.

Например, метод гвчегве изменяет порядок следования элементов в списке на обратный, а методы ехтепб и рор вставляют несколько элементов в конец списка и удаляют элементы из конца списка, соответственно: »>к=[1, 21 »> ц ехтепб([3,4,5]) № добавление нескольких элементов в конец списка »> [1, 2, 3, 4, 5] »> с.рор() № Удаляет и возвращает последний элемент списка 5 »> с [1, 2, 3, 4] »> с, гечегве[) >» [4, 3, 2, 1] В некоторых типах программ метод рор, показанный здесь, часто ис- пользуется в паре с методом вррвпб для реализации структур данных ти- па стек — »последний пришел, первый ушел» (Ьавь-1п-г)гв(-Оиь, 1дг О).

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

д. Чтобы поближе познакомиться с этими методами, обратитесь к имеющимся источникам документации или поэкспериментируйте с этими методами в интерактивной оболочке интерпретатора. »> ь = [] »> ь.аррепб(1) »> ь.аррепб(2) »> [1, 2] »> с рор() 2 »> [1] № Изменяет порядок следования элеиентов на обратннй 224 Глава 8.

Списки и словари Прочие часто используемые операции над списками Так как списки относятся к категории изменяемых объектов, вы мо- жете использовать инструкцию бе1 для удаления элемента или среза непосредственно из списка: »> ['ЯРАМ! ', 'еаг', 'аоге', 'р1еаае'] »> бе1 1[0] № Удаление одного элеиента списка »> ['еаг', 'аоге', 'р1еаае'] »> бе1 1[Ги] >» ['еаг'] № Удаление целого сегиента списка № То ие, нто и 1( П ] = 1] Так как операция присваивания срезу выполняется как удаление и вставка, можно удалять срезы списка, присваивая им пустой список ([[1: ] ]=[]) — интерпретатор сначала удалит срез, определяемый слева от оператора =, а затем вставит пустой список.

С другой стороны, присваивание пустого списка по индексу элемента приведет к сохранению ссылки на пустой список в этом элементе, а не к его удалению: »> 1 = ['А1геабу', 'зот', 'опе'] »> Цти] = [] »> ['А1геабу'] »> 1[0] = [] »> [[]] Словари После списков словари являются, пожалуй, самым гибким из встроенных типов данных в языке Ру1]гоп. Если считать списки упорядоченными коллекциями объектов, то в отличие от них элементы в слова- Все только что рассмотренные операции используются достаточно часто, однако существуют и другие дополнительные методы и операции для списков, которые не были показаны здесь (включая методы вставки и поиска). Чтобы получить полный список существующих дополнительных операций, всегда следует обращаться к руководствам по языку РуФоп, к функциям б1г и Пе1р (с которыми мы впервые позна.

комились в главе 4) или к книге «Ру[]гоп Рос]сеФ КеГегепсе» (О'Ке111у) и другим справочным руководствам, упоминавшимся в предисловии. Кроме того, я хотел бы напомнить, что все операции непосредственного изменения объектов, обсуждавшиеся здесь, применимы только к изменяемым объектам: они не будут работать со строками (или с кортежами, которые рассматриваются в следующей главе) независимо от прикладываемых вами усилий.

Изменяемость или неизменяемость— это исходное свойство, присущее каждому типу объектов. Словари йгб рях сохраняются и извлекаются с помощью ключа, а не с помощью смещения, определяющего их позицию. Будучи встроенным типом данных, словари могут заменить множество алгоритмов поиска и структур данных, которые приходится реализовывать вручную в низкоуровневых языках программирования,— доступ к элементам словаря по их индексам представляет собой быструю операцию поиска. Кроме того, иногда словари могут играть роль записей и таблиц символов, используемых в других языках, и способны служить для представления разреженных (по большей части пустых) структур данных. Ниже приводятся основные характеристики словарей в языке РуФпоп: Доступ к элементам по ключу, а не по индексу Иногда словари называют ассоциативными массивами, или хеша.

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

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

Словари представляют собой неупорядоченные коллекции, поэтому операции, которые основаны на использовании фиксированного порядка следования элементов (например, конкатенация, извлечение среза), не имеют смысла для словарей. Словари — это единственный встроенный представитель объектов-отображений (объекты, которые отображают ключи на значения). 22б Глава 8. Списки и словари Таблица 8.2. Литералы словарей и операции Операция 01=() Р2 = ('враз' 2, 'еддв': 3) 03 = ('горо': ('Паз': 1, 'Едд': 2)) Интерпретация Пустой словарь Словарь нз двух элементов Вложение Доступ к элементу по ключу 02['еддв'] 03['гоос']['пав'] Методы: проверка на вхождение, спи- сок ключей, список значений, копиро- вание, получение значения по умолча- нию, слияние, удаление н т.

д. 02.пав кеу('еддв') 'еддв' ш 02 02.Кеув() 02.уа1пев() 02,сору() Рд.дег(хеу, Ьесап11) 02.прсаге(01) 02.рор(кеу) Длина (количество элементов) 1еп(Р1) Как н в случае со списками, вам нечасто придется встречать словари, сконструированные с использованием литералов. Однако списки н словари увеличиваются в размерах по-разному. Как будет показано в следующем разделе, словари обычно дополняются с помощью операции присваивания по новым ключам во время выполнения программы — такой подход совершенно не годится для списков (спнскн обычно расширяются с помощью мегода аррепс). Таблицы ссылок иа объекты (хеш-таблицы) Если списки — это массивы ссылок на объекты, которые поддерживают возможность доступа к элементам по их позициям, то словари— это неупорядоченные таблицы ссылок на объекты, которые поддерживают доступ к элементам по ключу.

Внутри словари реализованы как хеш-таблицы (структуры данных, которые обеспечивают очень высокую скорость поиска), изначально небольшого размера и увеличивающиеся по мере необходимости. Более того, интерпретатор Ру$йоп использует оптимизированные алгоритмы хеширования для обеспечения максимально высокой скорости поиска ключей. Подобно спискам словари хранят ссылки на объекты (а не их копии).

В табл. 8.2 приводятся некоторые наиболее часто используемые операции над словарями (опять же, чтобы получить полный перечень операций, обращайтесь к руководству или воспользуйтесь функцией б[г(0101) или ле1р(0101), где о101 — это имя типа). при определении ввиде литералов словари записываются как последовательность пар Кеу: уа1ое, разделенных запятыми, заключенных в фигурные скобки.' Пустой словарь в литеральном представлении — это пустая пара скобок. Словари могут вкладываться в литеральном представлении в виде значений внутри других словарей, списков или кортежей. Словари в действии Словари вдействии Согласно табл.

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

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

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

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