Найти тему

💡 Срезы, что это такое и где могут пригодиться на ЕГЭ #tpy

Оглавление

Вступительная теория

В Python существует мощный инструмент для работы со структурами данных – это срезы или slice. Срезы позволяют получать подмножество элементов из последовательности. Рассмотрим, как это работает.

⌛️ Перед началом работы с срезами, напомним, что в Python индексация начинается с 0, если мы начинаем счет слева и -1, если счет начинается справа.

Чтобы получить элементы на определенных позициях, мы можем использовать обычную индексацию. Например, если у нас есть список чисел:

lst = [1, 2, 3, 4, 5]

Мы можем получить элемент на позиции 0, используя следующий синтаксис:

lst[0] # результат 1


Теперь рассмотрим, что такое срезы.
У срезов есть три параметра: -
Откуда начинать (включительно) - До какого момента (не включая) - Шаг (не обязательный параметр)
Первый и второй параметры не обязательно должны быть целыми числами, они также могут быть отсутствовать.
Если первый параметр отсутствует, срез начинается с начала.
Если второй параметр отсутствует, срез заканчивается в конце.

Срезы на примерах

Теперь давайте рассмотрим несколько примеров с использованием общего списка lst.

lst = [1, 2, 3, 4, 5]


Пример 1:
Получить первые три элемента списка:

lst[:3] # результат [1, 2, 3]


lst[:3]
- это срез списка, который начинается с первого элемента и заканчивается на третьем элементе.
Он возвращает новый список, содержащий первые три элемента списка.

Пример 2: Получить элементы со второго до четвертого (не включая четвертый):

lst[1:3] # результат [2, 3]


lst[1:3]
- это срез списка, который начинается со второго элемента и заканчивается на третьем элементе.
Он возвращает новый список, содержащий второй и третий элементы списка.

Пример 3: Получить элементы с шагом 2:

lst[::2] # результат [1, 3, 5]


lst[::2]
- это срез списка с шагом 2.
Он возвращает новый список, содержащий каждый второй элемент из исходного списка.

Пример 4: Изменить порядок элементов:

lst[::-1] # результат [5, 4, 3, 2, 1]


lst[::-1]
- это срез списка с шагом -1.
Он возвращает новый список, содержащий все элементы из исходного списка в обратном порядке.

Пример 5: Получить элементы задом наперед:

lst[3:0:-1] # результат [4, 3, 2]


lst[3:0:-1]
- это срез списка, который начинается с четвертого элемента и заканчивается на первом элементе с шагом -1.
Он возвращает новый список, содержащий элементы списка в обратном порядке от 4 до 1 включительно.

Где срезы могут пригодиться на экзамене?

В пятом номере часто требуют перевести число в двоичную запись, для этого мы можем использовать встроенную функцию bin() , но она возвращает результат с искажением, например:

n = 8
s = bin(n)
print(s) # результат 0b1000, а мы ожидали получить просто 1000

В данном случае проще всего будет срезать первые два элемента, то есть написать:

s = bin(n)[2:] # взяли все начинаю со 2-го по индексу

Часто нас просят взять сумму цифр в строке, а что, если в строке есть не только цифры, но и другие знаки, например:

s = '1243213231>'


Конечно мы можем написать следующий код используя генераторы списков:

print(sum([int(i) for i in s if i.isdigit()]))


Но вероятно, куда проще будет просто срезать крайний символ, то есть взять все до него:

print(sum([int(i) for i in s[:-1]]))


Уверены, что после прочтения этой статьи вы воспользуетесь срезами в своих программах!

Читайте нас в телеграмме:

Информатика ЕГЭ | itpy 👨‍💻

Присоединяйся к нашему Телеграм каналу: t.me/informatika_kege_itpy
Присоединяйся к нашему Телеграм каналу: t.me/informatika_kege_itpy