E Просунута індексація

E.1 Відємна індексація

E.2 Зрізи

E.2.1 start та stop за замовчуванням

guardians = ["Star Lord", "Gamora", "Drax", "Rocket", "Groot"]

Якщо ми пропустимо start і зазначимо тільки :stop, то за замовчуванням 🇬🇧 by default Python поверне елементи починаючи з самого початку і до stop (виключно). Ми будемо багато використовувати термін “за замовчуванням”. Це означає що якщо ми не зазначимо певний параметр, то значення цього параметру автоматично прийме певне значення, яке передбаченне розробниками. У нашому випадку, параметр start за замовчуванням має значення 0.

guardians[:4]
## ['Star Lord', 'Gamora', 'Drax', 'Rocket']

І навпаки, якщо ми тільки зазначимо start: без stop, то Python поверне елементи починаючи з start і до самого кінця. За замовчуванням, stop дорівнює довжині списку:

guardians[2:]
## ['Drax', 'Rocket', 'Groot']

E.2.2 Use-case: перша половина списку та друга половина списку

guardians[:4] # first 4 elements
## ['Star Lord', 'Gamora', 'Drax', 'Rocket']
guardians[4:] # the rest
## ['Groot']

E.2.3 Від’ємні start та stop

Якщо ми зазначимо замість додатних чисел від’ємні, то ми отримаємо числа з індексами відносно кінця списку:

guardians[-3:-1]
## ['Drax', 'Rocket']

E.2.4 Крок step

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

guardians[::2]
## ['Star Lord', 'Drax', 'Groot']