Метод String casefold() в Python — сопоставление строк без регистра
Метод casefold() используется в Python для сравнения строк без учета регистра.
Что такое метод string casefold() в Python?
Метод Python string casefold() возвращает сложенную копию строки. Он похож на понижение регистра, но более агрессивен, поскольку предназначен для удаления всех различий регистра в строке.
Если вы используете чистый текст ASCII, методы lower() и casefold() возвращают тот же результат.
Однако если вы имеете дело с символами Unicode, метод casefold() возвращает более точный результат, чем метод lower().
Например, буква ‘ß’ в Германии эквивалентна ‘ss’. Если вы используете метод lower(), результатом будет ‘ß’, поскольку буква ‘ß’ уже строчная.
Однако если вызвать метод casefold() для строки «ß», он вернет «ss».
По этой причине следует использовать метод string casefold() для выполнения сравнения строк без учета регистра, чтобы получить более точный результат.
Пример метода Python string casefold()
Следующий пример иллюстрирует, как использовать методы lower() и casefold() для сравнения строк без учета регистра:
color1 = 'weiß' color2 = 'weiss' print(color1 == color2) # False print(color1.lower() == color2.lower()) # False print(color1.casefold() == color2.casefold()) # True
Выход:
False False True
Как это работает.
Следующее выражение возвращает значение False, поскольку метод lower() ничего не делает с буквой «ß»:
color1.lower() == color2.lower()
Однако следующее сравнение возвращает True, поскольку метод casefold() возвращает копию строки color2 с буквой «ß», преобразованной в «ss».