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.