Операції з підрядками в Python
Підрядка - це послідовність символів, що є частиною більшого рядка. Це безперервна послідовність символів усередині рядка, яку можна видобувати або маніпулювати незалежно.
Наприклад, у рядку "Hello, World!", підрядки "Hello", "World" та "!" є підрядками вихідного рядка.
Давайте розглянемо найбільш загальні операції та методи, пов'язані з підрядками.
Зрізи Строк
Зріз рядка - це процес створення нового підрядка з існуючого рядка в Python. Ви можете зрізати рядок, використовуючи синтаксис [start:end] , щоб витягти частину рядка, який починається з індексу start і закінчується на індексі end (не включно). Ось деякі приклади:
my_string = "Hello, world!" # Get the substring from index 0 to index 4 (no inclusive) print(my_string[0:4]) # Output: "Hell" # Get the substring from index 7 to the end of the string print(my_string[7:]) # Output: "world!" # Get the substring from index 2 to index 8 (not inclusive) with a step of 2 print(my_string[2:8:2]) # Output: "lo," # Get the substring from index 2 to second-to- last character print(my_string[2:-1]) # Output: "llo, world"
У першому прикладі ми використовуємо зріз для вилучення підрядки "Hell" зі змінної my_string, вказуючи початковий індекс 0 і кінцевий індекс 4 (не включаючи).
У другому прикладі ми використовуємо зріз для вилучення підрядка "world!" із змінної my_string , вказуючи лише початковий індекс 7 і залишаючи кінцевий індекс порожнім. Це говорить Python витягти підрядок від початкового індексу до кінця рядка.
У третьому прикладі ми використовуємо зріз для отримання кожного другого символу з підрядка "lo,". Ми робимо це, вказуючи початковий індекс 2, кінцевий індекс 8 (не включаючи) і крок 2.
У четвертому прикладі ми використовуємо зріз для вилучення підрядка "llo, world" зі змінної my_string, вказуючи початковий індекс 2 і кінцевий індекс -1. -1 вказує на передостанній символ у рядку як на кінцевий індекс.
Щоб розділити рядок по роздільнику, ви можете використовувати метод split() . Цей метод приймає один аргумент, який є символом або рядком роздільника, які потрібно використовувати для розділення рядка. Ось приклад:
my_string = "Hello,world" my_list = my_string.split(",") print(my_list) # Output: ['Hello', 'world']
Ви можете скористатися першим характером від string в Python, використовуючи string slicing. Here's an example:
string = "hello" new_string = string[1:] print(new_string) # Output: eso
Зрізи рядків також можна використовувати для видалення останнього символу з рядка. Ось приклад:
my_string = "Hello World!" new_string = my_string[:-1] print(new_string) # Output: "Hello World"
Підрядок Рядки
Щоб перевірити, чи містить рядок Python конкретний підрядок, ви можете використовувати ключове слово in або метод find() .
Ось приклад використання ключового слова in:
my_string = "Hello, world!" if "world" in my_string: print("Substring found!") else: print("Substring not found.") # Output: Substring found!
Ось приклад використання методу find() :
my_string = "Hello, world!" if my_string.find("world") != -1: print("Substring found!") else: print("Substring not found.") # Output: Substring found!
В обох прикладах ми перевіряємо, чи є рядок "world" у рядку my_string . Якщо підрядок знайдено, ми друкуємо "Substring found!" , інакше ми друкуємо "Substring not found." .
Реверс Рядки
Існує кілька способів реверсування рядка Python.
Давайте подивимося, як реверсувати рядок у python на прикладах::
string = "hello" reversed_string = string[::-1] print(reversed_string) # Output: "olleh"
string = "hello" reversed_string = "" для char in string: reversed_string = char + reversed_string print(reversed_string) # Output: "olleh"
string = "hello" reversed_string = "".join(reversed(string)) print(reversed_string) # Output: "olleh"
Всі ці методи призведуть до того самого результату, який є перевернутою версією вихідного рядка.
Методи startswith() та endswith()
У Python, startswith() і endswith() - це два методи рядків, які використовуються для перевірки починається або закінчується чи рядок з певного префікса або суфікса відповідно.
Метод startswith() використовується для перевірки, чи починається рядок з певного префікса.
string.startswith(prefix, start=0, end=len(string))
- prefix – це префікс для перевірки.
- start - це необов'язковий параметр, який вказує початковий індекс рядка для пошуку.
- end це необов'язковий параметр, який вказує на кінцевий індекс рядка для пошуку.
Ось приклад використання методу startswith():
s = "Python is a great programming language" print(s.startswith("Python")) # True print(s.startswith("Java")) # False print(s.startswith(("Java", "Python") ))) # True (checking multiple prefixes)
Метод endswith() використовується для перевірки того, чи рядок закінчується конкретним суфіксом.
string.endswith(suffix, start=0, end=len(string))
- suffix це суфікс для перевірки.
- параметри start і end мають таке значення, як у методі startswith() .
Ось приклад використання методу endswith():
s = "Python is a great programming language" print(s.endswith("language")) # True print(s.endswith("Python")) # False print(s.endswith(("Python", "language") ))) # True (checking multiple suffixes)
В обох методах можна передати кортеж префіксів або суфіксів, щоб перевірити кілька можливостей. Параметри start і end є необов'язковими і можуть бути використані для пошуку частини рядка.
Метод split()
Це також вбудований метод в Python, який використовується для поділу та аналізу рядка на список підрядків на основі вказаного роздільника. За замовчуванням роздільник, що використовується, - пробіл.
s = "Hello World! How are you?" words = s.split() print(words) # Output: ['Hello', 'World!', 'How', 'are', 'you?']
У наведеному прикладі метод split() викликається для рядка s , яка містить слова, розділені пробілами. Отриманий список words містить усі слова з вихідного рядка як окремі елементи.
Ви можете також вказати інший роздільник, використовуючи метод split() . Наприклад:
s = "mango,pineapple,banana" fruits = s.split(",") print(fruits) # Output: ['mango', 'pineapple', 'banana']
У цьому прикладі метод split() викликається для рядка s, який містить імена фруктів, розділені комами. Отриманий список fruits містить всі імена фруктів як окремі елементи, при цьому як роздільник використовується кома.
Функція string.find()
Це вбудована функція Python, яка повертає індекс першого входження підрядка у цьому рядку. Якщо підрядок не знайдено, він повертає -1 . Синтаксис використання string.find() виглядає так:
string.find(substring, start=0, end=len(string))
де string – рядок для пошуку, substring – рядок, який шукаємо, start – початковий індекс пошуку (за замовчуванням 0), а end – кінцевий індекс пошуку (за замовчуванням довжина рядка).
sentence = "Розбіжний щастя fox скакати над лагідним psом" print(sentence.find("fox")) # Output: 16 print(sentence.find("cat")) # Output: -1
У першому рядку ми визначаємо рядкову змінну sentence. Потім ми використовуємо функцію find() для пошуку підрядка "fox" у рядку sentence. Оскільки "fox" знаходиться на індексі 16 у рядку sentence, функція find() повертає 16 . У другому рядку ми шукаємо підрядок "cat", який не знайдений у рядку sentence, тому функція find() повертає -1.
Метод replace()
У Python рядки незмінні, що означає, що ви не можете змінити рядок після його створення. Однак ви можете створити новий рядок, який містить змінену версію вихідного рядка.
Щоб видалити певний символ або підрядок з рядка Python, ви можете використовувати метод replace() або зріз рядка.
Ось приклад використання методу replace() для видалення певного символу:
my_string = "Hello, World!" new_string = my_string.replace("o", "") print(new_string) # Output: Hell, Wrld!
Тут ми замінили символ "o" на порожній рядок, видаливши його з вихідного рядка.
Рядок Рядки
Ви можете урізати рядок, вказавши максимальну довжину рядка, який хочете зберегти.
text = "Це є довгий текст, який потребує того, що він тремтить." max_length = 20 truncated_text = text[:max_length] + ". " if len(text) > max_length else print(truncated_text) # Output: Це long text.
У цьому прикладі ми спочатку визначаємо рядок text, який хочемо обрізати. Також ми вказуємо максимальну довжину рядка, що обрізає, використовуючи змінну max_length .
Потім ми використовуємо зрізи, щоб отримати перші символи рядка max_length . Якщо довжина вихідного рядка більше max_length , ми додаємо крапку в кінець рядка, що обрізає, використовуючи конкатенацію рядків. Якщо довжина вихідного рядка менша або дорівнює max_length, ми просто присвоюємо вихідний рядок змінної truncated_text.
Наприкінці ми друкуємо рядок, що обрізає, використовуючи функцію print() .
Метод count()
Ви можете використовувати вбудований метод count() для підрахунку кількості входжень підрядка у рядку.
Ось лічильник підрядка "is" :
string = "Hello, world! This is a sample string." substring = "is" count = string.count(substring) print(count) # Output: 2
У цьому прикладі ми маємо рядок "Hello, world! This is a sample string." , і хочемо порахувати кількість входжень підрядки " is " . Ми використовуємо метод count для підрахунку кількості разів, коли підрядок зустрічається у рядку.
Виведення цієї програми буде 2, тому що підрядок "is" зустрічається двічі в рядку.
Пишіть разом із нами!
Ви можете зробити свій внесок у статті про Python на GitHub: створіть Fork, внесіть правки та надішліть нам Pull request.
Метод substring
Метод substring повертає підрядок з рядка (початковий рядок при цьому не змінюється). Перший параметр визначає номер символу, з якого метод починає відрізати (нумерація йде з нуля), а другий параметр - номер символу, на якому слід закінчити вирізання (символ з цим номером не включається до вирізаної частини). Другий параметр не є обов'язковим, якщо він не вказаний, то вирізані всі символи до кінця рядка.
Синтаксис
приклад
Нехай дано рядок. Давайте виріжемо з неї символи з першого до третього:
Результат виконання коду (символ із номером 3 не включиться у вирізану частину):
приклад
Давайте тепер виріжемо символи з 1-го і до кінця рядка (для цього не поставимо другий параметр методу):
Результат виконання коду:
Дивіться також