Skip to content

API Reference

lev

distance builtin

distance(s1: str, s2: str) -> int

Levenshtein edit distance between two strings.

The distance is the minimum number of single-character insertions, deletions, or substitutions required to transform s1 into s2.

Lengths are measured in Unicode scalar values (chars), so multi-byte characters count as a single edit regardless of their UTF-8 encoded length.

Parameters:

Name Type Description Default
s1 str

First input string.

required
s2 str

Second input string.

required

Returns:

Type Description
int

Non-negative integer edit distance.

Examples:

>>> import lev
>>> lev.distance("kitten", "sitting")
3
>>> lev.distance("flaw", "lawn")
2
>>> lev.distance("résumé", "resume")
2

ratio builtin

ratio(s1: str, s2: str) -> float

Calculate normalized Levenshtein similarity ratio in [0.0, 1.0].

Defined as 1 - distance(s1, s2) / (len(s1) + len(s2)), where lengths are measured in Unicode scalar values.

Two empty strings return 1.0 by convention.

Parameters:

Name Type Description Default
s1 str

First input string.

required
s2 str

Second input string.

required

Returns:

Type Description
float

Similarity score between 0.0 (completely different) and 1.0 (identical).

Examples:

>>> import lev
>>> lev.ratio("kitten", "sitting")
0.7692307692307693
>>> lev.ratio("", "")
1.0