Изучаем Python - [25]

Шрифт
Интервал

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 кубов.

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


В главе 3 вы узнали, как обращаться к отдельным элементам списка, а в этой главе мы занимались перебором всех элементов списка. Также можно работать с конкретным подмножеством элементов списка; в Python такие подмножества называются срезами (slices).

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


Чтобы создать срез списка, следует задать индексы первого и последнего элементов, с которыми вы намереваетесь работать. Как и в случае с функцией range(), Python останавливается на элементе, предшествующем второму индексу. Скажем, чтобы вывести первые три элемента списка, запросите индексы с 0 по 3, и вы получите элементы 0, 1 и 2.

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

players.py

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

(1) print(players[0:3])

В точке (1) выводится срез списка, включающий только первых трех игроков. Вывод сохраняет структуру списка, но включает только первых трех игроков:

['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:])

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:")

(1) for player in players[:3]:

. .print(player.title())

Вместо того чтобы перебирать весь список игроков (1) , Python ограничивается первыми тремя именами:

Here are the first three players on my team:

Charles

Martina

Michael

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

Копирование списка


Часто разработчик берет существующий список и создает на его основе совершенно новый. Посмотрим, как работает копирование списков, и рассмотрим одну ситуацию, в которой копирование списка может принести пользу.

Чтобы скопировать список, создайте срез, включающий весь исходный список без указания первого и второго индекса ([:]). Эта конструкция создает срез, который начинается с первого элемента и завершается последним; в результате создается копия всего списка.

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

foods.py

(1) my_foods = ['pizza', 'falafel', 'carrot cake']


Рекомендуем почитать
Халявные антивирусы и другие бесплатные программы из Интернета!

Автор предлагает бесплатную, проверенную на практике, супернадежную и эффективную комплексную защиту от вирусов, шпионских программ, вторжения любопытных хакеров — любых попыток несанкционированного вторжения в ваш компьютер.Пользуясь советами автора, вы сможете не только выстроить надежную систему безопасности, но и контролировать те сайты, которые посещают ваши дети, а также без проблем восстановить операционную систему после любого сбоя и даже полного обрушения. Книга станет настольным пособием и у продвинутых пользователей, и у чайников благодаря простому и краткому изложению материала с подробными иллюстрациями каждого шага.


Прибыльный блог: создай, раскрути и заработай

Что такое блог, сегодня знает каждый или практически каждый пользователь Интернета. И судя по стремительно возрастающему количеству блогов в Сети, для многих блогинг — достаточно серьезное увлечение. Но далеко не каждый знает, что это увлечение вполне может быть очень прибыльным. Как «заставить» блог приносить деньги? Как создать и раскрутить свой блог? Как выбрать целевую аудиторию и тематику? Ответы на эти и многие другие вопросы вы найдете в практическом руководстве Евгения Литвина.Откройте для себя профессиональные секреты успеха, узнайте, как хобби может приносить прибыль!


Яндекс для всех

Рассказывается о ведущем поисковом ресурсе российской части Интернета — Яндексе. Описаны его сервисы для поиска документов и новостей, блогов и адресов, товаров и музыкальных произведений. Рассмотрены почтовый сервис и сервис для создания и размещения сайтов на Народ. ру. Читатель узнает о том, что такое "электронные деньги" и как с их помощью оплатить товар. Большое внимание уделяется общедоступным поисковым программам, которые Яндекс предлагает своим посетителям для поиска информации не только на сайтах, но и на своем компьютере.


Google. Прорыв в духе времени

Эта книга – захватывающая история самой успешной Интернет-компании в мире. В последнее время финансовый результат деятельности Google Inc. превосходит даже самые смелые ожидания инвестиционных аналитиков.Целеустремленность, научный талант, творческий поиск, смелость и любовь к эксперименту основателей компании – бывшего москвича Сергея Брина и выходца из штата Мичиган Ларри Пейджа – проложили путь к долгосрочному успеху компании. Под их руководством поисковый механизм Google стал популярнейшим ресурсом, который пользователи любят за удобство и уже испытывают к нему сильную эмоциональную привязанность.


Даркнет: Война Голливуда против цифровой революции

«Даркнет» – это рассказ о цифровой революции в мире медиа. В битве между технологическим прогрессом и медиа-магнатами решается будущее кино, музыки, телевидения, компьютерных игр и Интернета. В этой книге вы найдете истории людей, оказавшихся в эпицентре битвы. «Даркнет» увлечет вас в тайный мир киноподполья, где бутлегеры и пираты скрываются от закона и Голливуда. Но не только в подполье делается цифровая революция: множеству приверженцев цифрового образа жизни, творцам фан-фикшн, диджеев, кинематографистам-любителям, пионерам телевидения нового поколения и разработчикам игр приходится противостоять могущественным силам, стремящимся сохранить статус-кво.


Образование русскоязычного сегмента Фидонет в Западной Европе

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


В работу с головой. Паттерны успеха от IT-специалиста

Не можете сосредоточиться на работе? Постоянно отвлекаетесь на проверку электронной почты, социальные сети и новостные ленты? Пора воспользоваться советами от ведущих IT-специалистов и погрузиться в работу с головой.Освойте один из самых ценных навыков – умение сосредоточиться на сложной задаче, не отвлекаясь на мелочи. Только так можно справиться со сложной информацией и добиться лучших результатов за минимальное время. Погружение в работу – это суперсила в нашей все более конкурентной экономике XXI века.


SQL: быстрое погружение

Что общего между самыми востребованными профессиями и стремительным увеличением количества информации в мире? Ответ: язык структурированных запросов (SQL). SQL — рабочая лошадка среди языков программирования, основа основ для современного анализа и управления данными. Книга «SQL: быстрое погружение» идеальна для всех, кто ищет новые перспективы карьерного роста; для разработчиков, которые хотят расширить свои навыки и знания в программировании; для любого человека, даже без опыта, кто хочет воспользоваться возможностями будущего, в котором будут править данные.


Чистый код. Создание, анализ и рефакторинг

Даже плохой программный код может работать. Однако если код не является «чистым», это всегда будет мешать развитию проекта и компании-разработчика, отнимая значительные ресурсы на его поддержку и «укрощение». Эта книга посвящена хорошему программированию. Она полна реальных примеров кода. Мы будем рассматривать код с различных направлений: сверху вниз, снизу вверх и даже изнутри. Прочитав книгу, вы узнаете много нового о коде. Более того, вы научитесь отличать хороший код от плохого. Вы узнаете, как писать хороший код и как преобразовать плохой код в хороший. Книга состоит из трех частей.


Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих

Алгоритмы - это всего лишь пошаговые алгоритмы решения задач, и большинство таких задач уже были кем-то решены, протестированы и проверены. Можно, конечно, погрузится в глубокую философию гениального Кнута, изучить многостраничные фолианты с доказательствами и обоснованиями, но хотите ли вы тратить на это свое время? Откройте великолепно иллюстрированную книгу и вы сразу поймете, что алгоритмы - это просто. А грокать алгоритмы - это веселое и увлекательное занятие.