Функция slice() в Python
slice()Это встроенная функция в Python, используемая для создания объектов среза.
Объекты среза используются для указания диапазона среза последовательности и могут применяться везде, где поддерживаются операции среза, например в списках, кортежах, строках и т. д.
Определение слова: sliceОно означает "slice" и используется для создания объектов среза.
Базовый синтаксис и параметры
Формат синтаксиса
slice(stop) slice(start, stop) slice(start, stop, step)
Описание параметра
- Параметр start(необязательный):
- Тип: целое число
- Описание: начальная позиция среза, по умолчанию 0.
- Параметр stop:
- Тип: целое число
- Описание: конечная позиция среза (не включительно).
- Параметр step(необязательно):
- Тип: целое число
- Описание: шаг среза, по умолчанию 1.
Описание функций
- Возвращаемое значение: возвращает объект среза.
- Особенности: объекты среза можно использовать повторно, что очень удобно.
Примеры
Пример 1: создание объекта среза
Пример
# Создание объекта slice
s1 = slice(5) # От 0 до 5
s2 = slice(1, 5) # От 1 до 5
s3 = slice(0, 10, 2) # От 0 до 10, шаг 2
# Использование в срезах списка
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(my_list[s1]) # Вывод: [0, 1, 2, 3, 4]
print(my_list[s2]) # Вывод: [1, 2, 3, 4]
print(my_list[s3]) # Вывод: [0, 2, 4, 6, 8]
s1 = slice(5) # От 0 до 5
s2 = slice(1, 5) # От 1 до 5
s3 = slice(0, 10, 2) # От 0 до 10, шаг 2
# Использование в срезах списка
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(my_list[s1]) # Вывод: [0, 1, 2, 3, 4]
print(my_list[s2]) # Вывод: [1, 2, 3, 4]
print(my_list[s3]) # Вывод: [0, 2, 4, 6, 8]
Ожидаемый вывод:
[0, 1, 2, 3, 4] [1, 2, 3, 4] [0, 2, 4, 6, 8]
Пояснение к коду:
slice(5)Эквивалентно[0:5]。slice(1, 5)Эквивалентно[1:5]。slice(0, 10, 2)Эквивалентно[0:10:2]。
Пример 2: Свойства объекта slice
Пример
# Просмотр свойств объекта slice
s = slice(1, 10, 2)
print(s.start) # Вывод: 1
print(s.stop) # Вывод: 10
print(s.step) # Вывод: 2
# Отрицательная индексация
s = slice(-3, -1)
print(s.start) # Вывод: -3
print(s.stop) # Вывод: -1
s = slice(1, 10, 2)
print(s.start) # Вывод: 1
print(s.stop) # Вывод: 10
print(s.step) # Вывод: 2
# Отрицательная индексация
s = slice(-3, -1)
print(s.start) # Вывод: -3
print(s.stop) # Вывод: -1
Ожидаемый вывод:
1 10 2 -3 -1
Пояснение к коду:
- Объекты Slice имеют три свойства: start, stop и step.
- Отрицательная индексация поддерживается.
Пример 3: Практическое применение
Пример
# Создать переиспользуемый срез
first_three = slice(3)
last_three = slice(-3, None)
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(my_list[first_three]) # Вывод: [1, 2, 3]
print(my_list[last_three]) # Вывод: [7, 8, 9]
# Используется для многомерного среза
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
row = slice(0, 2) # Первые две строки
col = slice(1, 3) # Столбцы 2-3
print([row[col] for row in matrix[row]])
# Вывод: [[2, 3], [5, 6]]
first_three = slice(3)
last_three = slice(-3, None)
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(my_list[first_three]) # Вывод: [1, 2, 3]
print(my_list[last_three]) # Вывод: [7, 8, 9]
# Используется для многомерного среза
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
row = slice(0, 2) # Первые две строки
col = slice(1, 3) # Столбцы 2-3
print([row[col] for row in matrix[row]])
# Вывод: [[2, 3], [5, 6]]
Ожидаемый вывод:
[1, 2, 3] [7, 8, 9] [[2, 3], [5, 6]]
Главное преимущество объектов среза в том, что их можно использовать повторно, что делает код понятнее.
Другие расширения
Встроенные функции Python3