Метод string.casefold() в Python очень похож на метод lower(). Он используется для реализации безрегистрового сопоставления строк.
Что такое функция casefold() в Python?
Python String casefold() — это встроенная функция, используемая для реализации безрегистрового сопоставления строк. Метод casefold() аналогичен строковому методу lower(), но регистр удаляет все отличия регистра, присутствующие в строке. т.е. игнорирует регистры при сравнении.
Синтаксис
|
1 |
string.casefold() |
Параметры
Python casefold() не принимает никаких параметров.
Возвращаемое значение
Метод Python casefold() возвращает строку, преобразованную в нижний регистр.
Примеры программ с методом casefold()
- Пример 1. Напишем программу, показывающую механизм casefold().
|
1 2 3 4 5 |
# app.py string = "HELLO FROM DAVID LETTERMAN! :)" print("Uppercase string:", string) print("Lowercase String: ", string.casefold()) |
Смотрите вывод.
|
1 2 3 4 |
➜ pyt python3 app.py Uppercase string: HELLO FROM DAVID LETTERMAN! :) Lowercase String: hello from david letterman! :) ➜ pyt |
- Пример 2. Напишем две строки и сравним их с помощью casefold().
|
1 2 3 4 5 6 7 8 9 10 11 |
# app.py firststring = "light the bulß" secondstring = "light the bulss" print("First string:", firststring) print("Second string:", secondstring) print("After comparing it using casefold:") if(firststring.casefold() == secondstring.casefold()): print("Both the strings are same") else: print("Both the strings are not same") |
Смотрите вывод.
|
1 2 3 4 5 6 |
➜ pyt python3 app.py First string: light the bulß Second string: light the bulss After comparing it using casefold: Both the strings are same ➜ pyt |
Обе строки одинаковые.
Во втором примере мы можем видеть, что ß в немецком языке и ss в английском языке являются эквивалентами, если мы сравним их с помощью casefold.
Строка Python в нижнем регистре с использованием casefold()
Чтобы преобразовать строку в нижний регистр в Python, используйте функцию casefold(). См. следующий код.
|
1 2 3 4 5 6 |
# app.py string = "ROKU IS AWESOME" # print lowercase string print("Lowercase string:", string.casefold()) |
Смотрите вывод.
|
1 2 3 |
➜ pyt python3 app.py Lowercase string: roku is awesome ➜ pyt |
Проверка строки, является ли она палиндромом
Чтобы проверить, является ли строка палиндромом в Python, используйте методы casefold() и reversed().
Смотрите следующую программу.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# app.py str = 'abcdcba' # make it suitable for caseless comparison str = str.casefold() # reverse the string rev_str = reversed(str) # check if the string is equal to its reverse if list(str) == list(rev_str): print("palindrome") else: print(" not palindrome") |
Смотрите вывод.
|
1 2 3 |
➜ pyt python3 app.py palindrome ➜ pyt |
Python: lower() или casefold()?
Сворачивание регистра — это более агрессивная версия метода lower(), настроенная на то, чтобы сделать многие уникальные символы Unicode более сопоставимыми.
Это еще одна форма нормализации текста, которая поначалу может показаться очень разной, но при этом учитываются символы многих разных языков.
Если вы работаете строго на английском языке, функции lower() и casefold() должны давать точно такие же результаты.
Однако, если вы пытаетесь нормализовать текст из других языков, которые используют больше, чем простой 26-буквенный алфавит (используя только ASCII), я бы использовал casefold() для сравнения ваших строк, так как это даст более согласованные результаты.
