Drop Trailing '.0' von floats

Ich suche nach einer Möglichkeit, Zahlen in ein Zeichenfolgenformat zu konvertieren und dabei redundante '.0' zu löschen.

Die Eingabedaten sind eine Mischung aus Floats und Strings. Gewünschte Ausgabe:

0 -> '0'

0.0 -> '0'

0.1 -> '0.1'

1.0 -> '1'

Ich habe mir den folgenden Generatorausdruck ausgedacht, aber ich frage mich, ob es einen schnelleren Weg gibt:

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

Die Wahrheitsprüfung soll verhindern, dass 0 zu einer leeren Zeichenfolge wird.

EDIT: Die mehr oder weniger akzeptable Lösung, die ich derzeit habe, ist folgende:

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

Es scheint nur seltsam, dass es in Python keine elegante Möglichkeit gibt, mit diesem (recht einfachen) Fall umzugehen.

Antworten auf die Frage(32)

Ihre Antwort auf die Frage