Python Glossary English

Python 3.8+unicodedataфункция

unicodedata.is_normalized()

нормализация

Проверяет, находится ли строка уже в заданной нормальной форме, — быстрее, чем normalize() и сравнение.

Синтаксис

unicodedata.is_normalized(form, unistr, /)

Часто ответ получается без построения новой строки — поэтому её зовут перед normalize() на больших текстах. Форма указывается обязательно: 'й' из двух кодовых точек — False для 'NFC', но True для 'NFD', так что «нормализована» без формы ничего не значит. Строку функция не меняет; появилась в 3.8.

Примеры

import unicodedata
s = 'и\u0306'  # й из двух кодовых точек
print(unicodedata.is_normalized('NFC', s), unicodedata.is_normalized('NFD', s))  # → False True
if not unicodedata.is_normalized('NFC', s):
    s = unicodedata.normalize('NFC', s)
print(len(s))  # → 1

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности