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

Python: Нотация среза на кортеже

В этой статье мы рассмотрим примеры использования нотации среза для кортежей в Python. Мы разрежем кортеж, найдем первый и последний n элементов, перевернем кортеж и пропустим n элементов.

Автор оригинала: 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.