πŸ” Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ слайсы ΠΏΠΈΡ‚ΠΎΠ½? Π£Π·Π½Π°ΠΉΡ‚Π΅ всС ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с срСзами Π² Python!

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ слайсы Π² Python?

Блайсы (slices) Π² Python - это способ Π²Ρ‹Π±ΠΎΡ€Π° подстроки ΠΈΠ»ΠΈ подсписка ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ строка, список ΠΈΠ»ΠΈ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ слайсы, Π²Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ индСкс ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ индСкс Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Π½Π°Ρ‡Π°Π»ΠΎ:ΠΊΠΎΠ½Π΅Ρ†. ΠŸΠΎΠ΄ΡΡ‚Ρ€ΠΎΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ элСмСнты с ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ индСкса Π΄ΠΎ элСмСнта ΠΏΠ΅Ρ€Π΅Π΄ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΌ индСксом.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π°:

# БоздаСм список
my_list = [1, 2, 3, 4, 5]

# Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ подсписок с индСксами 1-3 (Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ)
slice_list = my_list[1:4]

# Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ подсписок
print(slice_list)

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ [2, 3, 4], Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ элСмСнты с индСксами 1, 2 ΠΈ 3 ΠΈΠ· исходного списка.

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ индСксы для Π²Ρ‹Π±ΠΎΡ€Π° элСмСнтов с ΠΊΠΎΠ½Ρ†Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ:

# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ строку
my_string = "Hello, World!"

# Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ подстроку с индСксами -5:-1
slice_string = my_string[-5:-1]

# Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ подстроку
print(slice_string)

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ orld, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ элСмСнты с индСксами -5, -4, -3 ΠΈ -2 ΠΈΠ· исходной строки.

ИспользованиС слайсов позволяСт ΡƒΠ΄ΠΎΠ±Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡΠΌΠΈ ΠΈ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½ΡƒΠΆΠ½Ρ‹Π΅ части Π΄Π°Π½Π½Ρ‹Ρ….

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ слайсы Π² Python?

Блайсы (slices) Π² Python - это ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π½Π°ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ строки, списки ΠΈ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ. Блайсы ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π½Π°ΠΌ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ подстроки, подсписки ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ элСмСнтов ΠΈΠ· исходной ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

Бинтаксис слайсов Π² Python

Бинтаксис слайса ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ структуру:

sequence[start:stop:step]

Π“Π΄Π΅:

  • sequence - это исходная ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, строка ΠΈΠ»ΠΈ список).
  • start - индСкс элСмСнта, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ начинаСтся слайс (Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ).
  • stop - индСкс элСмСнта, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ слайс заканчиваСтся (ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ).
  • step (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ) - шаг, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΡ‹ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ элСмСнты ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования слайсов Π² Python

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1: ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ подстроки ΠΈΠ· строки

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования слайсов для получСния подстроки ΠΈΠ· строки:

s = "ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!"
substring = s[7:11]  # Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ подстроку с индСкса 7 Π΄ΠΎ индСкса 11 (Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ)
print(substring)  # Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: "ΠΌΠΈΡ€"

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2: ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ подсписка ΠΈΠ· списка

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ слайсы для получСния подсписка ΠΈΠ· списка элСмСнтов:

numbers = [0, 1, 2, 3, 4, 5]
sublist = numbers[2:5]  # Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ подсписок с индСкса 2 Π΄ΠΎ индСкса 5 (Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ)
print(sublist)  # Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: [2, 3, 4]

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 3: Π’Ρ‹Π±ΠΎΡ€ΠΊΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ элСмСнта ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ шаг слайса для Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ элСмСнта ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ:

numbers = [0, 1, 2, 3, 4, 5]
selected_elements = numbers[::2]  # Π’Ρ‹Π±ΠΎΡ€ΠΊΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ элСмСнта
print(selected_elements)  # Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: [0, 2, 4]

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Блайсы Π² Python ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΌΠΎΡ‰Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡΠΌΠΈ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ слайсы, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π»Π΅Π³ΠΊΠΎ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ подстроки, подсписки ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ элСмСнтов ΠΈΠ· исходных ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ. Они особСнно ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с большими объСмами Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π·Π°Π΄Π°Ρ‡Π°Ρ…, связанных с манипуляциСй ΠΈ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΎΠΉ элСмСнтов.

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

Π£Ρ€ΠΎΠΊ 10 Π‘Ρ‚Ρ€ΠΎΠΊΠΈ: индСксы ΠΈ срСзы Python

ΠšΡƒΡ€Ρ ΠΏΠΎ Python. 1.2 ΠžΡΠ½ΠΎΠ²Ρ‹. Π‘Ρ‚Ρ€ΠΎΠΊΠΈ, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, индСксация, слайсы, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ строк

Python-Π΄ΠΆΠ΅Π΄Π°ΠΉ #18 - Π‘Ρ€Π΅Π· списка [List slicing & indexing]

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

πŸ” Как ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ строки ΠΏΠΎ Π°Π»Ρ„Π°Π²ΠΈΡ‚Ρƒ Π² Python: руководство с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ

πŸ” Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ пасс Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅? Всё, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΎ пасс-ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ Π² языкС Python

πŸ” Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ появлялся тСкст Π² Python?

πŸ” Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ слайсы ΠΏΠΈΡ‚ΠΎΠ½? Π£Π·Π½Π°ΠΉΡ‚Π΅ всС ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с срСзами Π² Python!

Как привСсти число ΠΊ Ρ†Π΅Π»ΠΎΠΌΡƒ числу Π² Python: Π³Π°ΠΉΠ΄ с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΈ объяснСниями

πŸ”’ Как Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ числа Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅? ЛСгкая ΠΈ эффСктивная инструкция

🎨 Как ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ†Π²Π΅Ρ‚ строки Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅? Π›Π΅Π³ΠΊΠΈΠΉ руководство ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹!