rstrip
не делает то, что вы хотите, он удаляет любой символов, которые вы ему даете, а не суффикс:
>>> '30000.0'.rstrip('.0')
'3'
На самом деле, просто '%g' % i
будет делать то, что вы хотите.
РЕДАКТИРОВАТЬ: как Роберт указал в своем комментарии, это не будет работать для больших чисел, поскольку он использует точность по умолчанию% g, которая составляет 6 значащих цифр.
Поскольку str(i)
использует 12 значащих цифр, я думаю, что это будет работать:
>>> numbers = [ 0.0, 1.0, 0.1, 123456.7 ]
>>> ['%.12g' % n for n in numbers]
['1', '0', '0.1', '123456.7']