Рубрики
Без рубрики

Введение в нарезку в Python

[Учебник] Все, что вам нужно знать о нарезке в Python.

Автор оригинала: Chris.

Нарезка – это концепция, чтобы вырезать подстроку из данной строки. Используйте обозначение нарезки 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 и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.