Нарезка – это концепция, чтобы вырезать подстроку из данной строки. Используйте обозначение нарезки S [Старт: Стоп: Шаг] Доступ к каждому шаг –й элемент, начиная с индекса Начало (включено) и заканчивая индекс останавливаться (Исключенный). Все три аргумента являются необязательными, поэтому вы можете пропустить их, чтобы использовать значения по умолчанию ( Start = 0. , Стоп = Лен (LST) , Шаг = 1. ). Например, выражение S [2: 4] от струны ‘Привет’ выклят ломтик ‘LL’ и выражение S [: 3: 2] выклят ломтик «HL» .
Нарезка – это специфическая для Python концепция для резки диапазона значений из типов последовательности, таких как списки или строки.
Попробуй сам:
Это один из самых популярных функций Python. Чтобы овладеть Python, вы должны сначала освоить нарезку. Любой нетривиальный кодовой код Python опирается на нарезю. Другими словами, время, когда вы инвестируете сейчас в овладении нарезки, будут погашены в сто разному во время вашей карьеры.
Вот 10 минут видеоизображения этой статьи – это показывает вам все, что вам нужно знать о нарезке:
[Intermezzo] Основы индексации
Чтобы воплотить всех на той же странице, позвольте мне быстро объяснить индексы в Python. Предположим, у нас есть строковая «вселенная». Индексы – это просто позиции персонажей этой строки.
Показатель | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Персонаж | u | n | i | v | e | r | s | e |
Первый символ имеет индекс 0, второй символ имеет индекс 1, а i-й символ имеет индекс I-1.
Быстрое введение нарезки
Идея нарезки проста. Вы выделяете подпоследовательность от последовательности, определяя начальные и конечные индексы. Но во время индексации извлекает только один символ, нарезка извлекает целую подстроку в диапазоне индекса.
Используйте нотацию кронштейна для нарезки с помощью идентификаторов старта и конечного положения. Например, Слово [I: J]
Возвращает подстроку, начиная с индекса Я
(включая) и заканчивая индекс J
(Исключенный). Забыть, что конец индекса исключен, является общим источником ошибок.
Вы также можете пропустить идентификатор положения до или после нарезки толстой кишки. Это указывает на то, что среза начинается с первой или последней позиции соответственно. Например, Word [: I] + Word [I:]
Возвращает ту же строку, что и слово
Отказ
Python Puzzle 1: Какая вывод этого кода фрагмент?
x = 'universe' print(x[2:4])
Размер шага в нарезке
Для полноты, позвольте мне быстро объяснить продвинутую нотацию нарезки [Пуск: End: Step]. Единственное отличие предыдущей записи – это то, что он позволяет вам также указать размер шага. Например, команда «Python» [: 5: 2] возвращает каждый второй символ до четвертого символа, то есть строка «PTO».
Python Puzzle 2: Какой вывод этого кода фрагмент?
x = 'universe' print(x[2::2])
Запрещенные индексы в срезах
Нарезка надежна, даже если конечный индекс стрелять над максимальным индексом последовательности. Просто помните, что ничего неожиданного не происходит, если нарезание превышенных последовательностей последовательности. Вот пример.
word = "galaxy" print(word[4:50])
Сводка нарезки Python
Короткое резюме, нотация ломтика S [Пуск: конец: шаг] выкрикивает подстроку из S. Подстрока состоит из всех символов между двумя символами в индексе начала (включительно) и конечным индексом (эксклюзивным). Дополнительный размер шага указывает, сколько символов остается из исходной последовательности. Вот пример:
s = 'sunshine' print(s[1:5:2]) #'us' print(s[1:5:1]) #'unsh'
Учиться нарезки, делая
Хорошо, так что давайте немного нарезки нарезки. Решите следующую головоломку в голове (и проверьте решение ниже).
Python Puzzle 3: Какая вывод этого кода-фрагмента?
# (Shakespeare) s = "All that glitters is not gold" print(s[9:-9]) print(s[::10]) print(s[:-4:-1])
Часто задаваемые вопросы
Давайте немного глубже в нарезю, чтобы убедиться, что вы получаете его на 100%.
Я искал квора, чтобы найти все маленькие проблемы, новые кодеры Python обращены с нарезкой. Я отвечу на шесть общих вопросов дальше.
1) Как пропустить показатели нарезки (например, [:: 2])?
Переводчик Python предполагает определенные значения по умолчанию для S [Start: Stop: Step]. Они являются:, (ы) и (на оборудовании ломтика: [0: Len (ы): 1]).
2) Когда использовать однокольскую оборотную оболочку (E.g. S [:]), а когда двойная обозначение двоеточия (например, a.g. s [:: 2])?
Одна толстая кишка (например, [1: 2]) позволяет двум аргументам, начало и конец индекса. Двойная толстая кишка (например, [1: 2: 2]) позволяет три аргумента, индекс запуска, конечный индекс и размер шага. Если размер шага установлен на значение 1 по умолчанию 1, мы можем использовать однокольскую обозначение для краткости.
3) Что означает отрицательный размер шага (например, [5: 1: -1])?
Это интересная особенность в Python. Размер отрицательного шага указывает, что мы не нарезаем слева направо, а справа налево. Следовательно, индекс запуска должен быть больше или равен, чем конечный индекс (в противном случае полученная последовательность пуста).
4) Какие индексы по умолчанию при использовании отрицательного размера шага (например, [:: – 1])?
В этом случае индексы по умолчанию нет и (ы), а наоборот: (S) -1 и End = -1. Обратите внимание, что индекс запуска все еще включен, и конечный индекс по-прежнему исключен из среза. Из-за этого индекс конца по умолчанию –1, а не 0.
5) Мы видели много примеров для нарезки строк. Как работает список нарезки?
Нарезка работает то же самое для всех типов последовательностей. Для списков рассмотрим следующий пример:
l = [1, 2, 3, 4] print(l[2:]) # [3, 4]
Крепежные кортежи работает аналогично.
6) Почему последний индекс исключен из ломтика?
Последний индекс исключается из-за двух причин. Первая причина – это согласованность языка, например Функция диапазона также не включает конец индекса. Вторая причина – ясность, например, вот пример, почему имеет смысл исключить конечный индекс с ломтика.
customer_name = 'Hubert' k = 3 # maximal size of database entry x = 1 # offset db_name = customer_name[x:x+k]
Теперь предположим, что конечный индекс будет включен. В этом случае общая длина подстроки DB_Name будет K + 1 символы. Это было бы очень противоборбительным.
Головоломки
Вот решения для головоломок в этой статье.
Головоломка 1:
лишенный
Головоломка 2:
вспомогательный
Головоломка 3:
блестит – это al dlo
Подписаться на * БЕСПЛАТНО * ОБУЧЕНИЕ * ОБУЧЕНИЕ PYTHON
И стать мастером Python на автопилоте.
Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.
Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python One-listers (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.
Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.