Распутайте понятие нарезки строки, списка и кортежа с примерами и вариантами использования.

Когда мы работаем со списками или строками, очень часто возникает потребность в нарезке. Сначала я чувствовал себя очень неуверенно, пока не практиковал это на разных примерах. Итак, в этом блоге мы разберемся с нарезкой на самых разных примерах строк, списков и кортежей.

▶ Прежде чем мы перейдем к технике нарезки, давайте рассмотрим некоторые основы индексации.

>>> str  = "AaBbCcDdEe"
>>> str[2] # return value at 1st index from front
'B'
>>> str[-2] # return value at 1st index from back
'E'

Декодировать нарезку

В приведенном выше примере мы видели, что когда мы выбираем только один элемент из строки, мы просто ставим индекс. В случае нарезки нам нужен интервал. И чтобы указать интервал, мы используем [<from>:<to>] в Python.

Здесь я буду использовать строки в примерах. Но этот метод работает точно так же с кортежами и списками. Вы можете попробовать это самостоятельно, рассматривая это как практический урок.

Все примеры выполнены в интерпретаторе Python.

>>> str  = "AaBbCcDdEe"
>>> str[0:len(str)] # [start_index=0 : end_index=len(str)]
'AaBbCcDdEe'

▶ Если перед «:» ничего не указано, по умолчанию Python использует start_index=0.

>>> str[:len(str)]
'AaBbCcDdEe'

▶ Если после «:» ничего не упоминается, по умолчанию Python использует end_index=len(str).

>>> str[:]
'AaBbCcDdEe'

▶ Выберите только AaBbCc из AaBbCcDdEe

>>> str[0:5]
'AaBbCc'
>>> str[:5]
'AaBbCc'
>>> str[0:-4] # select from start_index=0 to end_index=9-4= 5
'AaBbCc'
>>> str[:-4]
'AaBbCc'

▶ Если вы хотите выбрать только буквы верхнего регистра из ‘AaBbCcDdEe’ , мы можем использовать еще один «:».

# select characters leaving one in between from start_index = 0 to end of the string
>>> str[0:len(str):2]
'ABCDE'
>>> str[:len(str):2]
'ABCDE'
>>> str[0::2]
'ABCDE'
>>> str[::2]
'ABCDE'

▶ Если вы хотите выбрать только строчные буквы из ‘AaBbCcDdEe’ ,

# select characters leaving one in between from start_index = 1 to end of the string
>>> str[1::2]
'abcde'

Перевернуть строку 🎞

>>> str  = "AaBbCcDdEe"
>>> str[len(str):0:-2] # start_index = len(str), end_index = 0
'edcba'
>>> str[::-1] # start_index = len(str), end_index = 0
'eEdDcCbBaA'
>>> str[::-2] # start_index = len(str), end_index = 0
'edcba'
>>> str[-2::-2] # start_index = len(str)-1, end_index = 0
'EDCBA'

🔴 Вариант использования-1

Переверните предложение, не меняя порядок букв в словах.

>>> sentence = "Great you reached here, Happy learning!"
>>> sentence.split()[::-1] # splits where there is space <" "> 
['learning!', 'Happy', 'here,', 'reached', 'you', 'Great']

🔴Применение-2: Диапазон

Найдите все четные числа в диапазоне от 0 до 15.

>>> nums = tuple(range(15))
>>>nums
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
>>> nums[::2]
(0, 2, 4, 6, 8, 10, 12, 14)
>>> tuple(range(0, 15, 2))
(0, 2, 4, 6, 8, 10, 12, 14)

🔴Сценарий 3: Диапазон

Найдите все числа, делящиеся на «3», в диапазоне от «9» до «33» в порядке убывания.

>>> tuple(range(33, 9, -3))
(33, 30, 27, 24, 21, 18, 15, 12)

Теперь, когда мы закончили с блогом, я надеюсь, что вы без труда следили за ним. Если вы столкнулись с трудностями при чтении блога, пожалуйста, сообщите мне об этом в разделе комментариев.