Python Slicing: Просте пояснення з прикладами

Автор Dornos, Квт. 10, 2025, 01:03 PM

« попередня та - наступна тема »

Dornos


У мові програмування Python "слайсинг" (або зріз) — це потужний і зручний спосіб роботи з послідовностями, такими як списки, рядки чи кортежі. Він дозволяє витягувати певні частини даних, використовуючи просту синтаксичну конструкцію. У цій статті ми розглянемо основи слайсингу в Python, надамо оригінальні приклади коду та додамо розділ із поширеними запитаннями (FAQs).

Основи слайсингу в Python
Слайсинг працює за допомогою квадратних дужок [ ] і має наступний формат:
послідовність[початок:кінець:крок]
  • початок: індекс, з якого починається зріз (включно).
  • кінець: індекс, до якого доходить зріз (не включно).
  • крок: відстань між елементами (за замовчуванням 1).

Якщо якийсь із параметрів пропущено, Python використовує значення за замовчуванням:
  • початок = 0
  • кінець = довжина послідовності
  • крок = 1

Приклади коду
1. Витягнення частини рядка
text = "Привіт, Python!"
slice1 = text[0:6]  # Витягуємо "Привіт"
slice2 = text[7:13]  # Витягуємо "Python"
print(slice1)  # Виведе: Привіт
print(slice2)  # Виведе: Python

2. Використання пропущених значень
numbers = [10, 20, 30, 40, 50, 60]
all_numbers = numbers[:]  # Копія всього списку
from_start = numbers[:3]  # Перші 3 елементи
to_end = numbers[2:]  # Від 3-го до кінця
print(all_numbers)  # Виведе: [10, 20, 30, 40, 50, 60]
print(from_start)   # Виведе: [10, 20, 30]
print(to_end)       # Виведе: [30, 40, 50, 60]

3. Слайсинг із кроком
letters = "АБВГДЕЄЖЗИ"
every_second = letters[::2]  # Кожна друга літера
reversed_text = letters[::-1]  # Рядок у зворотному порядку
print(every_second)  # Виведе: АВДЕЖ
print(reversed_text) # Виведе: ИЗЖЄЕДГВБА

4. Робота зі списком і від'ємними індексами
fruits = ["яблуко", "банан", "апельсин", "манго", "ківі"]
last_two = fruits[-2:]  # Останні 2 елементи
middle = fruits[1:-1]   # Усі, крім першого і останнього
print(last_two)  # Виведе: ["манго", "ківі"]
print(middle)    # Виведе: ["банан", "апельсин", "манго"]

5. Зміна списку через слайсинг
numbers = [1, 2, 3, 4, 5]
numbers[1:4] = [20, 30, 40]  # Замінюємо елементи з індексів 1 по 3
print(numbers)  # Виведе: [1, 20, 30, 40, 5]


FAQs: Часті запитання про слайсинг у Python
  • Чим відрізняється слайсинг від індексації?
     Індексація повертає один елемент за його позицією (наприклад, list[2]), тоді як слайсинг повертає підмножину елементів у вигляді нової послідовності (наприклад, list[1:4]).
  • Чи можна використовувати слайсинг із кортежами?
     Так, слайсинг працює з усіма послідовностями Python, включаючи кортежі. Наприклад:

    tuple_example = (1, 2, 3, 4)
    print(tuple_example[1:3])  # Виведе: (2, 3)
  • Що станеться, якщо вказати індекс поза межами послідовності?
     Python не видасть помилку, а просто поверне доступну частину. Наприклад:

    text = "Слово"
    print(text[2:10])  # Виведе: ово
  • Як працює від'ємний крок?
     Від'ємний крок (наприклад, -1) змушує слайсинг рухатися у зворотному напрямку. Це корисно для реверсу послідовності:

    numbers = [1, 2, 3, 4]
    print(numbers[::-1])  # Виведе: [4, 3, 2, 1]
  • Чи можна змінити рядок через слайсинг?
     Ні, рядки в Python є незмінними. Для зміни потрібно створити новий рядок:

    text = "Старий"
    new_text = text[:3] + "рий"
    print(new_text)  # Виведе: Старий

Висновок
Слайсинг у Python — це гнучкий інструмент, який спрощує роботу з послідовностями. Завдяки йому ви можете швидко витягувати, змінювати чи реверсувати дані. Спробуйте погратися з прикладами вище, щоб краще зрозуміти його можливості! Якщо у вас є власні ідеї для експериментів із слайсингом, поділіться ними в коментарях.