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