Книга «Изучаем Python»



Pdf көрінісі
бет45/266
Дата03.03.2023
өлшемі7,86 Mb.
#170986
түріКнига
1   ...   41   42   43   44   45   46   47   48   ...   266
Байланысты:
Изучаем Python. Программирование игр, визуализация данных, веб-приложения ( PDFDrive )


Глава 4 • Работа со списками
Python возвращает все элементы с третьего до конца списка:
['michael', 'florence', 'eli'] 
Этот синтаксис позволяет вывести все элементы от любой позиции до конца спи-
ска независимо от его длины. Вспомните, что отрицательный индекс возвращает 
элемент, находящийся на заданном расстоянии от конца списка; следовательно, вы 
можете получить любой срез от конца списка. Например, чтобы отобрать последних 
трех игроков, используйте срез 
players[-3:]
:
players = ['charles', 'martina', 'michael', 'florence', 'eli'] 
print(players[-3:])
Программа выводит имена трех последних игроков, причем продолжает работать 
даже при изменении размера списка.
Перебор содержимого среза
Если вы хотите перебрать элементы, входящие в подмножество элементов, исполь-
зуйте срез в цикле 
for
. В следующем примере программа перебирает первых трех 
игроков и выводит их имена:
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print("Here are the first three players on my team:")
 
for player in players[:3]:
print(player.title())
Вместо того чтобы перебирать весь список игроков 

, Python ограничивается 
первыми тремя именами:
Here are the first three players on my team: 
Charles 
Martina 
Michael
Срезы приносят огромную пользу во многих ситуациях. Например, при создании 
компьютерной игры итоговый счет игрока может добавляться в список после 
окончания текущей партии. После этого программа может получить три лучших ре-
зультата игрока, отсортировав список по уменьшению и получив срез, включающий 
только три элемента. При работе с данными срезы могут использоваться для об-
работки данных блоками заданного размера. Или при построении веб-приложения 
срезы могут использоваться для постраничного вывода информации так, чтобы 
на каждой странице выводился соответствующий объем информации.
Копирование списка
Часто разработчик берет существующий список и создает на его основе совершенно 
новый. Посмотрим, как работает копирование списков, и рассмотрим одну ситуа-
цию, в которой копирование списка может принести пользу.


Работа с частью списка
75
Чтобы скопировать список, создайте срез, включающий весь исходный список 
без указания первого и второго индекса (
[:]
). Эта конструкция создает срез, 
который начинается с первого элемента и завершается последним; в результате 
создается копия всего списка.
Представьте, что вы создали список своих любимых блюд и теперь хотите создать 
отдельный список блюд, которые нравятся вашему другу. Пока вашему другу 
нравятся все блюда из нашего списка, поэтому вы можете создать другой список 
простым копированием нашего:
foods.py
 
my_foods = ['pizza', 'falafel', 'carrot cake']
 
friend_foods = my_foods[:]
print("My favorite foods are:")
print(my_foods)
print("\nMy friend's favorite foods are:")
print(friend_foods)
В точке 

создается список блюд с именем 
my_foods
. В точке 

создается дру-
гой список с именем 
friend_foods
. Чтобы создать копию 
my_foods
, программа 
запрашивает срез 
my_foods
без указания индексов, и мы сохраняем копию 
в 
friend_foods
.
При выводе обоих списков становится видно, что они содержат одинаковые данные:
My favorite foods are: 
['pizza', 'falafel', 'carrot cake'] 
My friend's favorite foods are: 
['pizza', 'falafel', 'carrot cake'] 
Чтобы доказать, что речь в действительности идет о двух разных списках, добавим 
новое блюдо в каждый список:
my_foods = ['pizza', 'falafel', 'carrot cake'] 
 
friend_foods = my_foods[:]
 
my_foods.append('cannoli')
 
friend_foods.append('ice cream')
print("My favorite foods are:")
print(my_foods)
print("\nMy friend's favorite foods are:")
print(friend_foods)
В точке 

исходные элементы 
my_foods
копируются в новый список 
friend_foods

как было сделано в предыдущем примере. Затем в 

каждый список добавляется 
новый элемент: 
'cannoli'
в 
my_foods
, и 
'ice cream'
в 
friend_foods
. После этого 
вывод двух списков наглядно показывает, что каждое блюдо находится в соответ-
ствующем списке.


76

Достарыңызбен бөлісу:
1   ...   41   42   43   44   45   46   47   48   ...   266




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет