Списки мовою програмування Python

Про матеріал
В презентації розповідається про основні методи роботи зі списками в мові Python
Зміст слайдів
Номер слайду 1

Списки (list)

Номер слайду 2

Что такое список?Список представляет собой набор элементов, следующих в определенном порядке. Вы можете создать список для хранения букв алфавита, цифр от 0 до 9 или имен всех членов вашей семьи. В список можно поместить любую информацию, причем данные в списке даже не обязаны быть как-то связаны друг с другом. Так как список обычно содержит более одного элемента, рекомендуется присваивать спискам имена во множественном числе: letters, digits, names и т. д. В языке Python список обозначается квадратными скобками [ ], а отдельные элементы списка разделяются запятыми. Простой пример списка с названиями моделей велосипедов:bicycles = ['trek', 'cannondale', 'redline', 'specialized'] print(bicycles)['trek', 'cannondale', 'redline', 'specialized']

Номер слайду 3

Что такое список?Конечно, вашим пользователям такое представление не подойдет; разберемся, как обратиться отдельным элементам в списке

Номер слайду 4

Что такое список?

Номер слайду 5

Обращение к элементам списка. Списки представляют собой упорядоченные наборы данных, поэтому для обращения к любому элементу списка следует сообщить Python позицию (индекс) нужного элемента. Чтобы обратиться к элементу в списке, укажите имя списка, за которым следует индекс элемента в квадратных скобках. Например, название первого велосипеда в списке bicycles выводится следующим образом: bicycles = ['trek', 'cannondale', 'redline', 'specialized'] print(bicycles[0])Синтаксис обращения к элементу bicycles[0]. Когда мы запрашиваем один элемент из списка, Python возвращает только этот элемент без квадратных скобок или кавычек: trek

Номер слайду 6

Обращение к элементам списка. Именно такой результат должны увидеть пользователи — чистый, аккуратно отформатированный вывод. Также можно использовать строковые методы из главы 2 с любым элементом списка. Например, элемент 'trek' можно более аккуратно отформатировать при помощи метода title(): bicycles = ['trek', 'cannondale', 'redline', 'specialized'] print(bicycles[0].title())Этот пример выдает такой же результат, как и предыдущий, только название 'Trek' выводится с большой буквы.

Номер слайду 7

Обращение к элементам списка. Индексы начинаются с 0, а не с 1 Python считает, что первый элемент списка находится в позиции 0, а не в позиции 1. Этот принцип встречается в большинстве языков программирования и объясняется особенностями низкоуровневой реализации операций со списками. Если вы получаете неожиданные результаты, определите, не допустили ли вы простую ошибку «смещения на 1». Второму элементу списка соответствует индекс 1. В этой простой схеме индекс любого элемента вычисляется уменьшением на 1 его позиции в списке. Например, чтобы обратиться к четвертому элементу списка, следует запросить элемент с индексом 3.

Номер слайду 8

Обращение к элементам списка. В следующем примере выводятся названия велосипедов с индексами 1 и 3: bicycles = ['trek', 'cannondale', 'redline', 'specialized'] print(bicycles[1]) print(bicycles[3]) При этом выводятся второй и четвертый элементы списка:cannondale specialized

Номер слайду 9

Обращение к элементам списка. В Python также существует специальный синтаксис для обращения к последнему элементу списка. Если запросить элемент с индексом –1, Python всегда возвращает последний элемент в списке:bicycles = ['trek', 'cannondale', 'redline', 'specialized'] print(bicycles[-1])Фрагмент вернет значение 'specialized'. Этот синтаксис весьма полезен, потому что при работе со списками часто требуется обратиться к последним элементам, не зная точного количества элементов в списке. Синтаксис также распространяется на другие отрицательные значения индексов. Индекс –2 возвращает второй элемент от конца списка, индекс –3 — третий элемент от конца, и т. д.

Номер слайду 10

Обращение к элементам списка. Использование отдельных элементов из списка. Отдельные значения из списка используются так же, как и любые другие переменные. Например, вы можете воспользоваться f-строками для построения сообщения, содержащего значение из списка. Попробуем извлечь название первого велосипеда из списка и составить сообщение, включающее это значение. bicycles = ['trek', 'cannondale', 'redline', 'specialized'] message = f"My first bicycle was a {bicycles[0].title()}." print(message) В программа строит сообщение, содержащее значение из bicycles[0], и сохраняет его в переменной message. Так создается простое предложение с упоминанием первого велосипеда из списка: My first bicycle was a Trek.

Номер слайду 11

УПРАЖНЕНИЯПопробуйте написать несколько коротких программ, чтобы получить предварительное представление о списках Python. Task_1. Имена: сохраните имена нескольких своих друзей в списке с именем names. Выведите имя каждого друга, обратившись к каждому элементу списка (по одному за раз). Task_2. Сообщения: начните со списка, использованного в упражнении 1, но вместо вывода имени каждого человека выведите сообщение. Основной текст всех сообщений должен быть одинаковым, но каждое сообщение должно включать имя адресата. Task_3. Собственный список: выберите свой любимый вид транспорта (например, мотоциклы или машины) и создайте список с примерами. Используйте свой список для вывода утверждений об элементах типа: «Я хотел бы купить мотоцикл Honda».

Номер слайду 12

Изменение, добавление и удаление элементов. Как правило, вы будете создавать динамические списки; это означает, что во время выполнения программы в созданном вами списке будут добавляться и удаляться элементы. Например, вы можете создать игру, в которой игрок должен стрелять по кораблям космических захватчиков. Исходный набор кораблей сохраняется в списке; каждый раз, когда вы сбиваете корабль, он удаляется из списка. Каждый раз, когда на экране появляется новый враг, он включается в список. Длина списка кораблей будет уменьшаться и увеличиваться по ходу игры.

Номер слайду 13

Изменение, добавление и удаление элементов. Изменение элементов в списке. Синтаксис изменения элемента напоминает синтаксис обращения к элементу списка. Чтобы изменить элемент, укажите имя списка и индекс изменяемого элемента в квадратных скобках; далее задайте новое значение, которое должно быть присвоено элементу. Допустим, имеется список мотоциклов и первым элементом списка хранится строка 'honda'. Как изменить значение первого элемента?motorcycles = ['honda', 'yamaha', 'suzuki'] print(motorcycles) motorcycles[0] = 'ducati' print(motorcycles) В программе определяется исходный список, в котором первый элемент содержит строку 'honda'. В значение первого элемента заменяется строкой 'ducati'. Из вывода видно, что первый элемент действительно изменился, тогда как остальные элементы списка сохранили прежние значения: ['honda', 'yamaha', 'suzuki'] ['ducati', 'yamaha', 'suzuki'] Изменить можно значение любого элемента в списке, не только первого.

Номер слайду 14

Изменение, добавление и удаление элементов. Добавление элементов в список. Новые элементы могут добавляться в списки по разным причинам: например, для появления на экране новых космических кораблей, включения новых данных в визуализацию или добавления новых зарегистрированных пользователей на построенный вами сайт. Python предоставляет несколько способов добавления новых данных в существующие списки. Присоединение элементов в конец списка Простейший способ добавления новых элементов в список — присоединение элемента в конец списка. Используя список из предыдущего примера, добавим новый элемент 'ducati' в конец списка: motorcycles = ['honda', 'yamaha', 'suzuki'] print(motorcycles) motorcycles.append('ducati') print(motorcycles) Метод append() в программе, присоединяет 'ducati' в конец списка, другие элементы в списке при этом остаются неизменными: ['honda', 'yamaha', 'suzuki'] ['honda', 'yamaha', 'suzuki', 'ducati']

Номер слайду 15

Изменение, добавление и удаление элементов. Метод append()Метод append() упрощает динамическое построение списков. Например, вы можете начать с пустого списка и добавлять в него элементы серией команд append(). В следующем примере в пустой список добавляются элементы 'honda', 'yamaha' и 'suzuki': motorcycles = [ ] motorcycles.append('honda') motorcycles.append('yamaha') motorcycles.append('suzuki') print(motorcycles) Полученный список выглядит точно так же, как и списки из предыдущих примеров: ['honda', 'yamaha', 'suzuki']Такой способ построения списков встречается очень часто, потому что данные, которые пользователь захочет сохранить в программе, часто становятся известными только после запуска программы. Чтобы пользователь мог управлять содержимым списка, начните с определения пустого списка, а затем присоединяйте к нему каждое новое значение.

Номер слайду 16

Изменение, добавление и удаление элементов. Вставка элементов в список. Метод insert()Метод insert() позволяет добавить новый элемент в произвольную позицию списка. Для этого следует указать индекс и значение нового элемента. motorcycles = ['honda', 'yamaha', 'suzuki'] motorcycles.insert(0, 'ducati') print(motorcycles) В этом примере значение 'ducati' вставляется в начало списка. Метод insert() выделяет свободное место в позиции 0 и сохраняет в нем значение 'ducati'. Все остальные значения списка при этом сдвигаются на одну позицию вправо: ['ducati', 'honda', 'yamaha', 'suzuki']

Номер слайду 17

Изменение, добавление и удаление элементов. Удаление элементов из списка. Нередко возникает необходимость в удалении одного или нескольких элементов из списка. Например, когда игрок сбивает корабль пришельца, этот корабль стоит удалить из списка активных врагов. Или когда пользователь решает удалить свою учетную запись в созданном вами веб-приложении, этот пользователь должен быть удален из списка активных пользователей. Элементы удаляются из списка по позиции или по значению.

Номер слайду 18

Изменение, добавление и удаление элементов. Удаление элемента с использованием команды del. Если вам известна позиция элемента, который должен быть удален из списка, воспользуйтесь командой del. motorcycles = ['honda', 'yamaha', 'suzuki'] print(motorcycles) del motorcycles[0] print(motorcycles) В прогамме вызов del удаляет первый элемент, 'honda', из списка motorcycles: ['honda', 'yamaha', 'suzuki'] ['yamaha', 'suzuki']

Номер слайду 19

Изменение, добавление и удаление элементов. Удаление элемента с использованием команды del. Команда del позволяет удалить элемент из любой позиции списка, если вам известен его индекс. Например, вот как из списка удаляется второй элемент, 'yamaha': motorcycles = ['honda', 'yamaha', 'suzuki'] print(motorcycles) del motorcycles[1] print(motorcycles) Второй элемент исчез из списка: ['honda', 'yamaha', 'suzuki'] ['honda', 'suzuki']В обоих примерах значение, удаленное из списка после использования команды del, становится недоступным.

Номер слайду 20

Изменение, добавление и удаление элементов. Удаление элемента с использованием метода pop()Иногда значение, удаляемое из списка, должно как-то использоваться. Допустим, вы хотите получить координаты x и y только что сбитого корабля пришельцев, чтобы изобразить взрыв в этой позиции. В веб-приложении пользователь, удаленный из списка активных участников, может быть добавлен в список неактивных, и т. д. Метод pop() удаляет последний элемент из списка, но позволяет работать с ним после удаления. Удалим мотоцикл из списка: motorcycles = ['honda', 'yamaha', 'suzuki'] print(motorcycles) popped_motorcycle = motorcycles.pop() print(motorcycles) print(popped_motorcycle)['honda', 'yamaha', 'suzuki'] ['honda', 'yamaha']suzuki

Номер слайду 21

Изменение, добавление и удаление элементов. Для чего может понадобиться метод pop()?Представьте, что мотоциклы в списке хранятся в хронологическом порядке в соответствии с датой их покупки. В таком случае команда pop() может использоваться для вывода сообщения о последнем купленном мотоцикле: motorcycles = ['honda', 'yamaha', 'suzuki'] last_owned = motorcycles.pop() print(f"The last motorcycle I owned was a {last_owned.title()}.") Программа выводит простое сообщение: The last motorcycle I owned was a Suzuki.

Номер слайду 22

Изменение, добавление и удаление элементов. Извлечение элементов из произвольной позиции списка. Вызов pop() может использоваться для удаления элемента в произвольной позиции списка; для этого следует указать индекс удаляемого элемента в круглых скобках. motorcycles = ['honda', 'yamaha', 'suzuki'] first_owned = motorcycles.pop(0) print(f"The first motorcycle I owned was a {first_owned.title()}.") Сначала первый элемент извлекается из списка, а затем выводится сообщение об этом мотоцикле. Программа выводит простое сообщение о первом мотоцикле: The first motorcycle I owned was a Honda. Помните, что после каждого вызова pop() элемент, с которым вы работаете, уже не находится в списке. Если вы не уверены в том, какой из двух способов выбрать, команду del или метод pop(), — простое правило поможет вам определиться: если вы собираетесь просто удалить элемент из списка, никак не используя его, выбирайте команду del; если же вы намерены использовать элемент после удаления из списка, выбирайте метод pop().

Номер слайду 23

Изменение, добавление и удаление элементов. Удаление элементов по значению метод remove(). Иногда позиция удаляемого элемента неизвестна. Если вы знаете только значение элемента, используйте метод remove(). Допустим, из списка нужно удалить значение 'ducati': motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati'] print(motorcycles) motorcycles.remove('ducati') print(motorcycles) Код приказывает Python определить, в какой позиции списка находится значение 'ducati', и удалить этот элемент: ['honda', 'yamaha', 'suzuki', 'ducati'] ['honda', 'yamaha', 'suzuki']

Номер слайду 24

Изменение, добавление и удаление элементов. Удаление элементов по значению метод remove(). Метод remove() также может использоваться для работы со значением, которое удаляется из списка. Следующая программа удаляет значение 'ducati' и выводит причину удаления: motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati'] print(motorcycles) too_expensive = 'ducati' motorcycles.remove(too_expensive) print(motorcycles) print(f"\n. A {too_expensive.title()} is too expensive for me.")['honda', 'yamaha', 'suzuki', 'ducati'] ['honda', 'yamaha', 'suzuki'] A Ducati is too expensive for me.

Номер слайду 25

УПРАЖНЕНИЯСледующие упражнения немного сложнее упражнений из главы 2, но они предоставляют возможность попрактиковаться в выполнении всех описанных операций со списками. Task_4. Список гостей: если бы вы могли пригласить кого угодно (из живых или умерших) на обед, то кого бы вы пригласили? Создайте список, включающий минимум трех людей, которых вам хотелось бы пригласить на обед. Затем используйте этот список для вывода пригласительного сообщения каждому участнику. Task_ 5. Изменение списка гостей: вы только что узнали, что один из гостей прийти не сможет, поэтому вам придется разослать новые приглашения. Отсутствующего гостя нужно заменить кем-то другим. • Начните с программы из упражнения 3.4. Добавьте в конец программы команду print для вывода имени гостя, который прийти не сможет. • Измените список и замените имя гостя, который прийти не сможет, именем нового приглашенного. • Выведите новый набор сообщений с приглашениями — по одному для каждого участника, входящего в список. Task_ 6. Больше гостей: вы решили купить обеденный стол большего размера. Дополнительные места позволяют пригласить на обед еще трех гостей. • Начните с программы из упражнения 3.4 или 3.5. Добавьте в конец программы команду print, которая выводит сообщение о расширении списка гостей. • Добавьте вызов insert() для добавления одного гостя в начало списка. • Добавьте вызов insert() для добавления одного гостя в середину списка. • Добавьте вызов append() для добавления одного гостя в конец списка. • Выведите новый набор сообщений с приглашениями — по одному для каждого участника, входящего в список.

Номер слайду 26

УПРАЖНЕНИЯTask_ 7. Сокращение списка гостей: только что выяснилось, что новый обеденный стол привезти вовремя не успеют и места хватит только для двух гостей. • Начните с программы из упражнения 3.6. Добавьте команду для вывода сообщения о том, что на обед приглашаются всего два гостя. • Используйте метод pop() для последовательного удаления гостей из списка до тех пор, пока в списке не останутся только два человека. Каждый раз, когда из списка удаляется очередное имя, выведите для этого человека сообщение о том, что вы сожалеете об отмене приглашения. • Выведите сообщение для каждого из двух человек, остающихся в списке. Сообщение должно подтверждать, что более раннее приглашение остается в силе. • Используйте команду del для удаления двух последних имен, чтобы список остался пустым. Выведите список, чтобы убедиться в том, что в конце работы программы список действительно не содержит ни одного элемента.

Номер слайду 27

Упорядочение списка. Нередко список создается в непредсказуемом порядке, потому что порядок получения данных от пользователя не всегда находится под вашим контролем. И хотя во многих случаях такое положение дел неизбежно, часто требуется вывести информацию в определенном порядке. В одних случаях требуется сохранить исходный порядок элементов в списке, в других исходный порядок должен быть изменен. Python предоставляет в распоряжение программиста несколько разных способов упорядочения списка в зависимости от ситуации.

Номер слайду 28

Упорядочение списка. Постоянная сортировка списка методом sort()Метод sort() позволяет относительно легко отсортировать список. Предположим, имеется список машин и вы хотите переупорядочить эти элементы по алфавиту. Чтобы упростить задачу, предположим, что все значения в списке состоят из символов нижнего регистра. cars = ['bmw', 'audi', 'toyota', 'subaru'] cars.sort() print(cars) Метод sort() осуществляет постоянное изменение порядка элементов в списке. Названия машин располагаются в алфавитном порядке, и вернуться к исходному порядку уже не удастся: ['audi', 'bmw', 'subaru', 'toyota']

Номер слайду 29

Упорядочение списка. Постоянная сортировка списка методом sort()Список также можно отсортировать в обратном алфавитном порядке; для этого методу sort() следует передать аргумент reverse=True. В следующем примере список сортируется в порядке, обратном алфавитному: cars = ['bmw', 'audi', 'toyota', 'subaru'] cars.sort(reverse=True) print(cars) И снова порядок элементов изменяется на постоянной основе: ['toyota', 'subaru', 'bmw', 'audi']

Номер слайду 30

Упорядочение списка. Временная сортировка списка функцией sorted()Чтобы сохранить исходный порядок элементов списка, но временно представить их в отсортированном порядке, можно воспользоваться функцией sorted(). Функция sorted() позволяет представить список в определенном порядке, но не изменяет фактический порядок элементов в списке. Попробуем применить эту функцию к списку машин. cars = ['bmw', 'audi', 'toyota', 'subaru'] print("Here is the original list:") print(cars) print("\n. Here is the sorted list:") print(sorted(cars)) print("\n. Here is the original list again:") print(cars)

Номер слайду 31

Упорядочение списка. Временная сортировка списка функцией sorted()Сначала список выводится в исходном порядке, а затем в алфавитном порядке. После того как список будет выведен в новом порядке, мы убеждаемся в том, что список все еще хранится в исходном порядке. Here is the original list: ['bmw', 'audi', 'toyota', 'subaru'] Here is the sorted list: ['audi', 'bmw', 'subaru', 'toyota'] Here is the original list again: ['bmw', 'audi', 'toyota', 'subaru'] Обратите внимание: после вызова функции sorted() список продолжает храниться в исходном порядке. Функции sorted() также можно передать аргумент reverse=True, чтобы список был представлен в порядке, обратном алфавитному.

Номер слайду 32

Вывод списка в обратном порядке. Чтобы переставить элементы списка в обратном порядке, используйте метод reverse(). Скажем, если список машин первоначально хранился в хронологическом порядке даты приобретения, элементы можно легко переупорядочить в обратном хронологическом порядке: cars = ['bmw', 'audi', 'toyota', 'subaru'] print(cars) cars.reverse() print(cars) Обратите внимание: метод reverse() не сортирует элементы в обратном алфавитном порядке, а просто переходит к обратному порядку списка: ['bmw', 'audi', 'toyota', 'subaru'] ['subaru', 'toyota', 'audi', 'bmw'] Метод reverse() осуществляет постоянное изменение порядка элементов, но вы можете легко вернуться к исходному порядку, снова применив reverse() к обратному списку

Номер слайду 33

Определение длины списка. Вы можете быстро определить длину списка с помощью функции len(). Список в нашем примере состоит из четырех элементов, поэтому его длина равна 4:>>> cars = ['bmw', 'audi', 'toyota', 'subaru']>>> len(cars)4 Метод len() может пригодиться для определения количества пришельцев, которых необходимо сбить в игре; объема данных, которыми необходимо управлять в визуализации; количества зарегистрированных пользователей на веб-сайте и т. д.

Номер слайду 34

УПРАЖНЕНИЯTack_8. Повидать мир: вспомните хотя бы пять стран, в которых вам хотелось бы побывать. • Сохраните названия стран в списке. Проследите за тем, чтобы список не хранился в алфавитном порядке. • Выведите список в исходном порядке. Не беспокойтесь об оформлении, просто выведите его как обычный список Python. • Используйте функцию sorted() для вывода списка в алфавитном порядке без изменения списка. • Снова выведите список, чтобы показать, что он по-прежнему хранится в исходном порядке. • Используйте функцию sorted() для вывода списка в обратном алфавитном порядке без изменения порядка исходного списка. • Снова выведите список, чтобы показать, что исходный порядок не изменился. • Измените порядок элементов вызовом reverse(). Выведите список, чтобы показать, что элементы следуют в другом порядке. • Измените порядок элементов повторным вызовом reverse(). Выведите список, чтобы показать, что список вернулся к исходному порядку. • Отсортируйте список в алфавитном порядке вызовом sort(). Выведите список, чтобы показать, что элементы следуют в другом порядке. • Вызовите sort() для перестановки элементов списка в обратном алфавитном порядке. Выведите список, чтобы показать, что порядок элементов изменился.

Номер слайду 35

УПРАЖНЕНИЯTack_ 9. Количество гостей: в одной из программ из упражнений с 3.4 по 3.7 используйте len()для вывода сообщения с количеством людей, приглашенных на обед. Tack_10. Все функции: придумайте информацию, которую можно было бы хранить в списке. Например, создайте список гор, рек, стран, городов, языков… словом, чего угодно. Напишите программу, которая создает список элементов, а затем вызывает каждую функцию, упоминавшуюся в этой главе, хотя бы один раз.

pptx
Додано
19 лютого 2022
Переглядів
1446
Оцінка розробки
Відгуки відсутні
Безкоштовний сертифікат
про публікацію авторської розробки
Щоб отримати, додайте розробку

Додати розробку