Sie müssen werfen zuerst zu schweben:
[int(float(i)) for i in data1]
int
Willen Boden die Zahl für Sie anrufen:
In [8]: int(float("1.23456e+03"))
Out[8]: 1234
Sie können tun, Alles in der Dateilogik:
with open("/home/milenko/Distr70_linux/Projects/Tutorial_Ex3/myex/base.txt", 'r') as f:
floored = [int(float(line)) for line in f]
Es ist eine gute Übung, with zu verwenden, um Ihre Dateien zu öffnen, wird es das Schließen Ihrer Dateien für Sie behandeln. Auch Int und float kann mit führenden oder nachgestellten Leerraum umgehen, so dass Sie sich keine Sorgen über die Verwendung von Streifen machen müssen.
Auch wenn Sie es fehlt nur den Schwimmer zu ziehen und nicht auch Stock, ist map
eine schöne Möglichkeit, eine Liste von Schwimmern zu schaffen, Ints etc .. aus einer Datei oder einen iterable:
floored = list(map(float, f))
Or mit python3 wo Karte einen Iterator zurückgibt, können Sie Karte verdoppeln:
floored = list(map(int, map(float, f)))
Der entsprechende Code in python2 itertools.imap
verwenden würde,
Sie Strings werfen können schwimmt. 'data1 = [float (line.strip()) für Zeile in ...]' – khelwood