сбросив трейлинг '.0' с поплавков

Я ищу способ преобразования чисел в строковый формат, отбрасывая любые лишние '.0'

Входные данные представляют собой смесь чисел с плавающей точкой и строк. Желаемый вывод:

0 -> '0'

0.0 -> '0'

0,1 -> 0,1

1,0 -> 1

Я придумал следующее выражение генератора, но мне интересно, есть ли более быстрый способ:

(str(i).rstrip('.0') if i else '0' for i in lst)

Проверка правды существует, чтобы предотвратить превращение 0 в пустую строку.

РЕДАКТИРОВАТЬ: более или менее приемлемое решение, которое я имею сейчас, заключается в следующем:

('%d'%i if i == int(i) else '%s'%i for i in lst)

Просто кажется странным, что в python нет элегантного способа справиться с этим (довольно простым) случаем.