Python находит первую ненулевую цифру после десятичной точки

Простая задача, как найти первую ненулевую цифру после десятичной точки. Что мне действительно нужно, так это расстояние между десятичной точкой и первой ненулевой цифрой.

Я знаю, что могу сделать это с помощью нескольких строк, но я бы хотел иметь какой-нибудь питонический, красивый и чистый способ решить эту проблему.

Пока что у меня есть это

>>> t = [(123.0, 2), (12.3, 1), (1.23, 0), (0.1234, 0), (0.01234, -1), (0.000010101, -4)]
>>> dist = lambda x: str(float(x)).find('.') - 1
>>> [(x[1], dist(x[0])) for x in t]
[(2, 2), (1, 1), (0, 0), (0, 0), (-1, 0), (-4, 0)]
6
задан mskfisher 15 June 2012 в 13:01
поделиться