Автор оригинала: Kristina Popovic.
Вступление
Термин нарезка в программировании обычно относится к получению подстроки, подкорпуса или подсписка из строки, кортежа или списка соответственно.
Python предлагает множество простых способов нарезать не только эти три, но и любые итерационные . iterable – это, как следует из названия, любой объект, который может быть повторен.
В этой статье мы рассмотрим все, что вам нужно знать о Нарезке кортежей в Python .
Нарезка кортежа в Python
Существует несколько способов разрезать кортеж, наиболее распространенным из которых является использование оператора :
со следующим синтаксисом:
tuple[start:end] tuple[start:end:step]
Параметр start
представляет начальный индекс, end
– конечный индекс, а step
– количество элементов, которые “перешагнуты”.
Если step
явно не задан, то значение по умолчанию равно 1
.
Давайте продолжим и нарежем кортеж:
a_tuple = ('You', 'can't', 'stop', 'the', 'change,', 'any', 'more', 'than', 'you', 'can', 'stop', 'the', 'suns', 'from', 'setting.') subtuple = a_tuple[1:5] print(subtuple)
Результирующий кортеж будет:
('can't', 'stop', 'the', 'change,')
Нахождение Первого и Последнего n элементов кортежа
Чтобы найти первый и последний n
элементы кортежа, мы срежем от первого элемента до n
, а затем от -n
до конца кортежа.
-n
начнет отсчет с конца кортежа, в обратном направлении, давая нам последние n
элементы:
n = 2 a_tuple = ('I', 'find', 'your', 'lack', 'of', 'faith', 'disturbing.') first_n_tuple = a_tuple[:n] print(first_n_tuple) last_n_tuple = a_tuple[-n:] print(last_n_tuple)
Полученными подтипами являются:
('I', 'find') ('faith', 'disturbing.')
Обратный кортеж с нотацией среза
Если мы установим параметр step
равным -1
– он начнет отступать назад. Если мы включим все или даже часть кортежа и просто сделаем шаг назад, это фактически перевернет содержимое кортежей:
a_tuple = ('Fear', 'is', 'the', 'path', 'to', 'the', 'dark', 'side.', 'Fear', 'leads', 'to', 'anger;', 'anger', 'leads', 'to', 'hate;', 'hate', 'leads', 'to', 'suffering.', 'I', 'sense', 'much', 'fear', 'in', 'you.', 7) reverse_tuple = a_tuple[::-1] print(reverse_tuple)
Перевернутый кортеж будет:
(7, 'you.', 'in', 'fear', 'much', 'sense', 'I', 'suffering.', 'to', 'leads', 'hate', 'hate;', 'to', 'leads', 'anger', 'anger;', 'to', 'leads', 'Fear', 'side.', 'dark', 'the', 'to', 'path', 'the', 'is', 'Fear')
Нахождение каждого n-го элемента кортежа
Чтобы найти каждый n
-й элемент кортежа, мы перепрыгнем через все не- n
элементы, установив шаг равным n
:
n = 5 a_tuple = ('The', 'dark', 'side', 'of', 'the', 'Force', 'is', 'a', 'pathway', 'to', 'many', 'abilities', 'some', 'consider', 'to', 'be', 'unnatural.') replaced_tuple = a_tuple[::n] print(replaced_tuple)
Это приведет к кортежу:
('The', 'Force', 'many', 'be')
Вывод
Нарезка любой последовательности в Python проста, проста и интуитивно понятна. Отрицательная индексация предлагает простой способ получить первые или последние несколько элементов последовательности или изменить ее порядок.
В этой статье мы рассмотрели, как применить нотацию среза к кортежам в Python.