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



Pdf көрінісі
бет48/238
Дата07.01.2022
өлшемі7,86 Mb.
#18670
түріКнига
1   ...   44   45   46   47   48   49   50   51   ...   238
УПРАЖНЕНИЯ

4-3 . Считаем до 20: используйте цикл for для вывода чисел от 1 до 20 включительно .

4-4 . Миллион: создайте список чисел от 1 до 1 000 000, затем воспользуйтесь циклом for 

для вывода чисел . (Если вывод занимает слишком много времени, остановите его нажатием 

Ctrl+C или закройте окно вывода .)

4-5 . Суммирование миллиона чисел: создайте список чисел от 1 до 1 000 000, затем вос-

пользуйтесь функциями min() и max() и убедитесь в том, что список действительно начи-

нается с 1 и заканчивается 1 000 000 . Вызовите функцию sum() и посмотрите, насколько 

быстро Python сможет просуммировать миллион чисел .

4-6 . Нечетные числа: воспользуйтесь третьим аргументом функции range() для создания 

списка нечетных чисел от 1 до 20 . Выведите все числа в цикле for .

4-7 . Тройки: создайте список чисел, кратных 3, в диапазоне от 3 до 30 . Выведите все числа 

своего списка в цикле for .

4-8 .  Кубы:  результат  возведения  числа  в  третью  степень  называется  кубом .  Например, 

куб 2 записывается в языке Python в виде 2**3 . Создайте список первых 10 кубов (то есть 

кубов всех целых чисел от 1 до 10) и выведите значения всех кубов в цикле for .

4-9 .  Генератор  кубов:  используйте  конструкцию  генератора  списка  для  создания  списка 

первых 10 кубов .




Работа с частью списка    73

Работа с частью списка

В главе 3 вы узнали, как обращаться к отдельным элементам списка, а в этой главе 

мы занимались перебором всех элементов списка. Также можно работать с конкрет-

ным подмножеством элементов списка; в Python такие подмножества называются 

срезами (slices).

Создание среза

Чтобы создать срез списка, следует задать индексы первого и последнего элементов, 

с которыми вы намереваетесь работать. Как и в случае с функцией 

range()

, Python 

останавливается на элементе, предшествующем второму индексу. Скажем, чтобы 

вывести первые три элемента списка, запросите индексы с 0 по 3, и вы получите 

элементы 0, 1 и 2.

В следующем примере используется список игроков команды:



players.py

players = ['charles', 'martina', 'michael', 'florence', 'eli'] 

print(players[0:3])



В точке  выводится срез списка, включающий только первых трех игроков. Вывод 

сохраняет структуру списка, но включает только первых трех игроков:

['charles', 'martina', 'michael']

Подмножество может включать любую часть списка. Например, чтобы ограничить-

ся вторым, третьим и четвертым элементами списка, срез начинается с индекса 1 

и заканчивается на индексе 4:

players = ['charles', 'martina', 'michael', 'florence', 'eli'] 

print(players[1:4])

На этот раз срез начинается с элемента 

'martina'

 и заканчивается элементом 

'florence'

:

['martina', 'michael', 'florence']



Если первый индекс среза не указан, то Python автоматически начинает срез 

от  начала списка:

players = ['charles', 'martina', 'michael', 'florence', 'eli'] 

print(players[:4])

Без начального индекса Python берет элементы от начала списка:

['charles', 'martina', 'michael', 'florence']

Аналогичный синтаксис работает и для срезов, включающих конец списка. Напри-

мер, если вам нужны все элементы с третьего до последнего, начните с индекса 2 

и не указывайте второй индекс:

players = ['charles', 'martina', 'michael', 'florence', 'eli'] 

print(players[2:])



74    Глава 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

Чтобы скопировать список, создайте срез, включающий весь исходный список 

без указания первого и второго индекса (

[:]


). Эта конструкция создает срез, 

который начинается с первого элемента и завершается последним; в результате 

создается копия всего списка.

Представьте, что вы создали список своих любимых блюд и теперь хотите создать 

отдельный список блюд, которые нравятся вашему другу. Пока вашему другу 

нравятся все блюда из нашего списка, поэтому вы можете создать другой список 

простым копированием нашего:



Достарыңызбен бөлісу:
1   ...   44   45   46   47   48   49   50   51   ...   238




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

    Басты бет