diff --git a/src/__init__.py b/src/__init__.py index b4a08714be4c5a0cad28eb3b84b1d4e084c2d5c1..fe5471741121de8cb8a636ab9670ff0e426831e0 100644 --- a/src/__init__.py +++ b/src/__init__.py @@ -575,6 +575,26 @@ def all_roughly_equal(iterable, threshold): +def common_prefix(iterable, empty=None): + it = iter(iterable) + try: + pfx = it.next() + except StopIteration: + return empty + + for v in it: + for j in range(len(pfx)): + if pfx[j] != v[j]: + pfx = pfx[:j] + if j == 0: + return pfx + break + + return pfx + + + + def decorate(function, list): return map(lambda x: (x, function(x)), list)