Sobes.tech
Junior

Какви са срезовете (slices) в Python и как се използват?

sobes.tech AI

Отговор от AI

Нарязването (slices) в Python е удобен начин за получаване на подпоследователности от подредени колекции като низове, списъци и кортежи. Те позволяват извличане на елементи или части от последователност, без да модифицират оригиналната колекция.

Синтаксис на нарязването: [start:stop:step]

  • start: индекс на началото на нарязването (включително). По подразбиране 0.
  • stop: индекс на края на нарязването (не включително). По подразбиране е краят на последователността.
  • step: стъпка на нарязването (колко елемента да се пропуснат). По подразбиране 1.

Индексите могат да бъдат отрицателни. Отрицателен индекс се брои от края на последователността (-1 е последният елемент, -2 предпоследният и т.н.).

Примери за използване:

# Низ
s = "Hello, world!"
# Нарязване от началото до 5-ия елемент (без него)
print(s[:5])  # Изход: Hello
# Нарязване от 7-ия елемент до края
print(s[7:]) # Изход: world!
# Нарязване от 7-ия до 12-ия елемент (без него)
print(s[7:12]) # Изход: world
# Копиране на низа
print(s[:]) # Изход: Hello, world!
# Обърнат низ
print(s[::-1]) # Изход: !dlrow ,olleH
# Нарязване с крачка 2
print(s[::2]) # Изход: Hlo ol!

# Списък
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# Нарязване от 2-ия до 5-ия елемент (без него)
print(my_list[1:5]) # Изход: [2, 3, 4, 5]
# Нарязване от последния до 3-ия елемент (без него), с крачка -1
print(my_list[-1:2:-1]) # Изход: [10, 9, 8, 7, 6, 5, 4]

# Кортеж
my_tuple = (10, 20, 30, 40, 50)
# Нарязване от 2-ия до 4-ия елемент (без него)
print(my_tuple[1:4]) # Изход: (20, 30, 40)

Използването на нарязвания позволява създаването на нови обекти с части от данните на оригиналната последователност, което ги прави ефективен инструмент за манипулиране на данни.