πŸ” Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ сдвиг строки Π² Python: простой ΠΈ эффСктивный способ

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π²ΠΈΠ½ΡƒΡ‚ΡŒ строку Π² Python, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ срСзы (slices) ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ строки.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΎΠ±ΠΎΠΈΡ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ²:


# Π‘ использованиСм срСзов
s = "ΠŸΡ€ΠΈΠΌΠ΅Ρ€ строки"
shifted = s[1:] + s[0]
print(shifted)  # "Ρ€ΠΈΠΌΠ΅Ρ€ ΡΡ‚Ρ€ΠΎΠΊΠ°ΠŸ"

# Π‘ использованиСм ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² строки
s = "ΠŸΡ€ΠΈΠΌΠ΅Ρ€ строки"
shifted = s[1:len(s)] + s[0]
print(shifted)  # "Ρ€ΠΈΠΌΠ΅Ρ€ ΡΡ‚Ρ€ΠΎΠΊΠ°ΠŸ"
    

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

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ сдвиг строки Π² Python

Π‘Π΄Π²ΠΈΠ³ строки Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ - это процСсс измСнСния полоТСния символов Π² строкС Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ количСство символов Π²ΠΏΡ€Π°Π²ΠΎ ΠΈΠ»ΠΈ Π²Π»Π΅Π²ΠΎ. Π’ Python Π΅ΡΡ‚ΡŒ нСсколько способов Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ сдвиг строки. Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ….

1. ИспользованиС срСза (slice) для сдвига строки

Для выполнСния сдвига строки Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ количСство символов Π²ΠΏΡ€Π°Π²ΠΎ ΠΈΠ»ΠΈ Π²Π»Π΅Π²ΠΎ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ срСза (slice) Π² Python. Π‘Ρ€Π΅Π· прСдставляСт собой подстроку, которая вырСзаСтся ΠΈΠ· исходной строки.


string = "ΠŸΡ€ΠΈΠΌΠ΅Ρ€ строки"
shift = 3

left_shifted_string = string[shift:] + string[:shift]  # Π‘Π΄Π²ΠΈΠ³ строки Π²Π»Π΅Π²ΠΎ
right_shifted_string = string[-shift:] + string[:-shift]  # Π‘Π΄Π²ΠΈΠ³ строки Π²ΠΏΡ€Π°Π²ΠΎ

print(left_shifted_string)  # Π’Ρ‹Π²ΠΎΠ΄: "ΠΌΠ΅Ρ€ ΡΡ‚Ρ€ΠΎΠΊΠΈΠŸΡ€ΠΈΠΌ"
print(right_shifted_string)  # Π’Ρ‹Π²ΠΎΠ΄: "ΠΈΠ½ΡΠŸΡ€ΠΈΠΌΠ΅Ρ€ стр"

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создаСм Π΄Π²Π΅ Π½ΠΎΠ²Ρ‹Π΅ строки: left_shifted_string ΠΈ right_shifted_string. Для сдвига строки Π²Π»Π΅Π²ΠΎ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ срСз string[shift:], ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Π΅Ρ€Π΅Ρ‚ всС символы послС ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ смСщСния, Π° Π·Π°Ρ‚Π΅ΠΌ добавляСт символы Π΄ΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ смСщСния string[:shift]. Для сдвига строки Π²ΠΏΡ€Π°Π²ΠΎ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ с ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ значСниями смСщСния.

2. ИспользованиС Ρ†ΠΈΠΊΠ»Π° для сдвига строки

Π”Ρ€ΡƒΠ³ΠΎΠΉ способ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ сдвиг строки - это использованиС Ρ†ΠΈΠΊΠ»Π° Π² Python. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» for для ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ символа Π² исходной строкС ΠΈ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ мСсто Π² Π½ΠΎΠ²ΠΎΠΉ строкС.


string = "ΠŸΡ€ΠΈΠΌΠ΅Ρ€ строки"
shift = 3

left_shifted_string = ""
right_shifted_string = ""

for i in range(len(string)):
    left_shifted_string += string[(i + shift) % len(string)]
    right_shifted_string += string[(i - shift) % len(string)]

print(left_shifted_string)  # Π’Ρ‹Π²ΠΎΠ΄: "ΠΌΠ΅Ρ€ ΡΡ‚Ρ€ΠΎΠΊΠΈΠŸΡ€ΠΈΠΌ"
print(right_shifted_string)  # Π’Ρ‹Π²ΠΎΠ΄: "ΠΈΠ½ΡΠŸΡ€ΠΈΠΌΠ΅Ρ€ стр"

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ†ΠΈΠΊΠ» for для ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ символа Π² исходной строкС. Для сдвига строки Π²Π»Π΅Π²ΠΎ ΠΌΡ‹ добавляСм символы Π² left_shifted_string с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ индСкса (i + shift) % len(string). Аналогично ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ индСкс (i - shift) % len(string) для сдвига строки Π²ΠΏΡ€Π°Π²ΠΎ.

3. ИспользованиС встроСнной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ str.maketrans() ΠΈ str.translate()

Python прСдоставляСт встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ str.maketrans() ΠΈ str.translate(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ слоТныС манипуляции с символами Π² строкС, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ сдвиг.


string = "ΠŸΡ€ΠΈΠΌΠ΅Ρ€ строки"
shift = 3

table = str.maketrans("abcdefghijklmnopqrstuvwxyz", "defghijklmnopqrstuvwxyzabc")
left_shifted_string = string.translate(table)

table = str.maketrans("abcdefghijklmnopqrstuvwxyz", "xyzabcdefghijklmnopqrstuvw")
right_shifted_string = string.translate(table)

print(left_shifted_string)  # Π’Ρ‹Π²ΠΎΠ΄: "ΠΌΠ΅Ρ€ ΡΡ‚Ρ€ΠΎΠΊΠΈΠŸΡ€ΠΈΠΌ"
print(right_shifted_string)  # Π’Ρ‹Π²ΠΎΠ΄: "ΠΈΠ½ΡΠŸΡ€ΠΈΠΌΠ΅Ρ€ стр"

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создаСм Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ (`table`), Π·Π°Π΄Π°ΡŽΡ‰ΡƒΡŽ соотвСтствиС ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ символу Π² исходной строкС с Π½ΠΎΠ²Ρ‹ΠΌ символом, с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ сдвига. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ str.translate(), пСрСдавая Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ сдвиг ΠΊ строкС.

Π’Ρ‹Π²ΠΎΠ΄

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли Ρ‚Ρ€ΠΈ способа ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ сдвиг строки Π² Python. ΠœΡ‹ использовали срСзы (slicing), Ρ†ΠΈΠΊΠ» ΠΈ встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ str.maketrans() ΠΈ str.translate() для выполнСния сдвига. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ любой ΠΈΠ· этих способов Π² зависимости ΠΎΡ‚ Π²Π°ΡˆΠΈΡ… потрСбностСй ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΉ.

Π‘Π΄Π²ΠΈΠ³ строки - это полСзная опСрация, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡Π°Ρ…, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠΎΠΌΠΏΡ€Π΅ΡΡΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ манипуляции с тСкстом. НадСюсь, эта ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΠΎΠΌΠΎΠ³Π»Π° Π²Π°ΠΌ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ сдвиг строки Π² Python!

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

ЦикличСский сдвиг списка. Π―Π·Ρ‹ΠΊ программирования Python

Π‘ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ сдвиги Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅

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

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

Как ΠΏΠΈΡΠ°Ρ‚ΡŒ стСпСни Π² Python: ΠΏΠΎΠ»Π½ΠΎΠ΅ руководство с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΈ совСтами

😍 Как ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ рСгистр Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅? πŸ˜ƒ Π£Π·Π½Π°ΠΉΡ‚Π΅ простыС способы! πŸš€

πŸ” Π›Π΅Π³ΠΊΠΈΠΉ способ вывСсти Ρ‡Π΅Ρ‚Π½Ρ‹Π΅ числа ΠΈΠ· массива Π² Python 🐍

πŸ” Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ сдвиг строки Π² Python: простой ΠΈ эффСктивный способ

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‡Π°Ρ‚-Π±ΠΎΡ‚Π° Π² Π’Π΅Π»Π΅Π³Ρ€Π°ΠΌ Π½Π° Python? πŸ€–πŸ ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

🧹 Как Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Python 2 с Linux? 🐍

πŸ”‘ Как ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π² cmd python: ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ