Оригінальна публікація: What Does :: Mean in Python? Operator Meaning for Double Colon

Подвійну двокрапку (::) можна використати в Python, щоб розрізати та отримати елементи з колекції даних (наприклад, зі списку чи рядка).

У цій публікації ви дізнаєтесь про синтаксис та як використовувати ::, щоб розрізати список в Python. Ви також вивчите, як використовувати параметри, пов’язані з цим методом.

Синтаксис подвійної двокрапки (::) в Python

Синтаксис подвійної двокрапки має такий вигляд:

collection[start:stop:step]

В синтаксисі вище:

  • collection позначає колекцію даних (список, рядок, масив тощо);
  • start позначає звідки починається розріз;
  • stop позначає де закінчується розріз;
  • step позначає послідовність ітерації над елементами.

Якщо розглянути синтаксис уважніше, ви помітите, що параметри розділені двокрапками.

Далі ми розглянемо приклади того, як працює кожен параметр.

Приклад подвійної двокрапки в Python №1

У цьому прикладі ми зосередимось на параметрі start:

список_чисел = [2,4,6,8,10,12]

print(список_чисел[2:])
# [6, 8, 10, 12]

В прикладі вище ми створили список під назвою список_чисел з такими елементами: [2,4,6,8,10,12].

Потім ми використали параметр start, щоб розрізати список, починаючи з другого індексу: список_чисел[2:].

Ось індекси:

2 => індекс 0
4 => індекс 1
6 => індекс 2
8 => індекс 3
10 => індекс 4
12 => індекс 5

Не забувайте, що розріз починається з індексу 2. Тому буде повернено всі елементи після другого індексу до кінця списку: [6, 8, 10, 12].

Це те ж саме, що й казати: «Надрукуй всі елементи списку, починаючи з конкретного індексу». Вказаний індекс також буде надруковано.

Зверніть увагу, що параметр start пишеться перед першою двокрапкою.

Приклад подвійної двокрапки в Python №2

У цьому розділі ми розглянемо, як використовувати параметр stop. Його пишуть після першої двокрапки та перед другою двокрапкою.

На відміну від параметра start, конкретний індекс не враховується. Розріз закінчиться на індексі перед вказаним індексом.

Ось приклад:

список_чисел = [2,4,6,8,10,12]

print(список_чисел[:2])
# [2, 4]

Як і в попередньому розділі, індексом вказано 2. Ось індекси:

2 => індекс 0
4 => індекс 1
6 => індекс 2
8 => індекс 3
10 => індекс 4
12 => індекс 5

За допомогою параметра stop можна отримати всі елементи перед конкретним індексом.

За індексом 2 розташоване число 6. Перед ним йдуть елементи 2 та 4, тому їх надруковано: [2, 4], а інші елементи «вирізано».

Приклад подвійної двокрапки в Python №3

Параметр step працює цікавим способом. Його використовують, щоб вказати послідовність, якої потрібно дотримуватись під час розрізу колекції.

Параметр step пишеться після другої двокрапки.

Якщо не вказувати параметри start та stop, то ви отримаєте цілий список. Жоден елемент не буде вирізано.

Оскільки ми вже говорили про параметри start та stop, то не будемо призначати значення до них. Ви краще зрозумієте принцип роботи параметра step, якщо ми працюватимемо зі всіма елементами списку.

список_чисел = [2,4,6,8,10,12]

print(список_чисел[::2])
# [2, 6, 10]

Нарешті дві двокрапки розташовані разом: список_чисел[::2].

Для step ми використали значення 2. Це означає, що протягом ітерації список стрибатиме на два кроки.

Першим елементом є 2. Якщо зробити два кроки з 2, ми опинимось на 6. Якщо зробити два кроки з 6, ми опинимось на 10. З 10 ми не можемо перейти, оскільки більше немає елементів.

Параметр step можна прирівняти до того, як ходять по сходах. Якщо взяти наш код з прикладу, ви б зупинялись та друкували елемент на кожній другій сходинці.

Висновок

Подвійну двокрапку (::) в Python використовують, щоб вказати як має поводитись операція «розрізу». Часто ці двокрапки використовують, щоб розрізати колекції даних.

У цій публікації ми побачили, як використовувати параметри start, stop та step, щоб розрізати список.

Ми розглянули приклади до кожного параметра, що допомогло розпізнати різницю між ними та дізнатись, як вони впливають на структуру списку.

Щасливого програмування!