Распутайте понятие нарезки строки, списка и кортежа с примерами и вариантами использования.
Когда мы работаем со списками или строками, очень часто возникает потребность в нарезке. Сначала я чувствовал себя очень неуверенно, пока не практиковал это на разных примерах. Итак, в этом блоге мы разберемся с нарезкой на самых разных примерах строк, списков и кортежей.
▶ Прежде чем мы перейдем к технике нарезки, давайте рассмотрим некоторые основы индексации.
>>> 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)
Теперь, когда мы закончили с блогом, я надеюсь, что вы без труда следили за ним. Если вы столкнулись с трудностями при чтении блога, пожалуйста, сообщите мне об этом в разделе комментариев.