str.casefold()
Метод casefold() возвращает копию строки в «сложенном» (case-folded) виде. Это более агрессивный вариант lower(), специально предназначенный для регистронезависимого сравнения строк, в том числе для языков с особыми правилами регистра (например, немецкого).
Сигнатура
str.casefold()
Параметры
Метод не принимает параметров.
Возвращаемое значение
Новая строка (str) в нормализованном «свёрнутом» регистре.
Примеры использования
Пример 1. Разница с lower() на немецком слове.
Буква ß (eszett) при casefold() превращается в ss, тогда как lower() оставляет её без изменений:
word = "Straße"
print(word.lower())
print(word.casefold())
straße
strasse
Пример 2. Регистронезависимое сравнение.
a = "STRASSE"
b = "Straße"
print(a.lower() == b.lower())
print(a.casefold() == b.casefold())
False
True
Пример 3. Обычная латиница и кириллица.
Для большинства строк casefold() ведёт себя как lower():
print("Arduino UNO".casefold())
print("АЛАШ ЭЛЕКТРОНИКС".casefold())
arduino uno
алаш электроникс
Пример 4. Поиск без учёта регистра.
query = "ESP32"
items = ["esp32-CAM", "Arduino UNO", "ESP32 DevKit"]
matches = [x for x in items if query.casefold() in x.casefold()]
print(matches)
['esp32-CAM', 'ESP32 DevKit']
См. также
str.lower() — простое приведение к нижнему регистру
str.upper() — верхний регистр
str.capitalize() — заглавная первая буква
Примечание
Лицензия и источники
Техническое описание метода адаптировано из официальной документации Python (https://docs.python.org), доступной под Python Software Foundation License Version 2. Перевод на русский, примеры использования и пояснения — © AlashEd Wiki.