Функция получает целое положительное число в виде строки и возвращает его разбитое по триадам. У меня так получилось. Может кто-нибудь подскажет более элегантный способ (не считая locale.format)? Спасибо.
def format(string):
string_length = len(string)
ends = range(string_length % 3, string_length + 1, 3)
starts = [0] + ends[:-1]
return ' '.join(map(lambda a, b: string[a:b], starts, ends))
>>> print format('1234567890')
1 234 567 890