Wie konvertiere ich jeden Wert in der Liste von einem String in einen Float?
Ich habe versucht:
for item in my_list:
float(item)
Aber das scheint bei mir nicht zu funktionieren.
Verwenden Sie list nicht als Variablennamen.
– Tim Pietzcker
23. Okt. 2009 um 15:39
Um den obigen Kommentar näher zu erläutern: using list Als Variablenname wird die integrierte Variable beschattet list Konstruktor, sodass Sie dies nicht im selben Bereich verwenden können
– Lasse Halbberg Haarbye
25. Juni 2019 um 16:05 Uhr
[float(i) for i in lst]
Genauer gesagt wird eine neue Liste mit Float-Werten erstellt. im Gegensatz zu den map Ansatz, es wird in py3k funktionieren.
Für große Arrays würde ich die Verwendung von Numpy empfehlen: np.array(inp_list, dtype=np.float32). Sie müssen nicht einmal angeben, ob es sich um einen Float handelt, sondern verwenden einfach: np.array(inp_list)
– Thomas Devoogdt
23. Mai 2018 um 13:40 Uhr
@Thomas Devoogdt: Ich denke, Sie müssen den Typ angeben, sonst erhalten Sie ein Numpy-Array von Zeichenfolgen
– seb007
2. Juli 2019 um 9:28
Bitte beachten Sie, dass Sie eine Zuordnung vornehmen müssen [float(i) for i in lst] zu etwas. Z.B: new_list = [float(i) for i in lst]
– FaizFizy
24. Okt. 2019 um 2:27
Warum verfügt Python nicht über eine professionelle Funktion, um diesen Vorgang auszuführen?
– Benutzer2585501
7. Okt. 2021 um 0:17
Tim Pietzcker
map(float, mylist) Sollte es tun.
(In Python 3 gibt „map“ kein Listenobjekt mehr zurück. Wenn Sie also eine neue Liste und nicht nur etwas zum Durchlaufen möchten, benötigen Sie entweder list(map(float, mylist) – oder verwenden Sie die Antwort von SilentGhost, die wohl pythonischer ist.)
Dies ist in der Tat eine Design-Suboptimalität in Python 3.
– xuancong84
6. November 2019 um 7:28
Amin Kiany
Dies wäre eine andere Methode (ohne Verwendung einer Schleife!):
import numpy as np
list(np.float_(list_name))
Sie müssen das np.array nicht erneut in die Liste umwandeln, wenn Sie es als np.array behalten möchten =)
– alvas
19. Juni 2018 um 1:49
Denis Otkidach
float(item) Machen Sie das Richtige: Es wandelt sein Argument in Float um und gibt es zurück, aber es ändert das Argument nicht an Ort und Stelle. Eine einfache Lösung für Ihren Code ist:
new_list = []
for item in list:
new_list.append(float(item))
Derselbe Code kann mithilfe des Listenverständnisses kürzer geschrieben werden: new_list = [float(i) for i in list]
So ändern Sie die Liste direkt:
for index, item in enumerate(list):
list[index] = float(item)
Übrigens, vermeiden Sie die Verwendung list für Ihre Variablen, da es integrierte Funktionen mit demselben Namen maskiert.
Alireza
Sie können dies sogar mit Numpy tun
import numpy as np
np.array(your_list,dtype=float)
Dies gibt das np-Array Ihrer Liste als Float zurück
Sie können „dtype“ auch als int festlegen
Aber dann geben Sie ein Numpy-Array zurück, keine Liste.
– Benutzer650261
24. Juni 2019 um 19:42 Uhr
derZauderer
Du kannst den … benutzen map() Funktion zum direkten Konvertieren der Liste floats:
float_list = map(float, list)
Aber dann geben Sie ein Numpy-Array zurück, keine Liste.
– Benutzer650261
24. Juni 2019 um 19:42 Uhr
bfree67
Mit Numpy können Sie eine Liste direkt in ein Floating-Array oder eine Floating-Matrix konvertieren.
import numpy as np
list_ex = [1, 0] # This a list
list_int = np.array(list_ex) # This is a numpy integer array
Wenn Sie das Integer-Array in ein Floating-Array konvertieren möchten, fügen Sie 0 hinzu
list_float = np.array(list_ex) + 0. # This is a numpy floating array
14502700cookie-checkWie konvertiere ich alle Elemente in einer Liste in Floats? [duplicate]yes
Verwenden Sie list nicht als Variablennamen.
– Tim Pietzcker
23. Okt. 2009 um 15:39
Um den obigen Kommentar näher zu erläutern: using
list
Als Variablenname wird die integrierte Variable beschattetlist
Konstruktor, sodass Sie dies nicht im selben Bereich verwenden können– Lasse Halbberg Haarbye
25. Juni 2019 um 16:05 Uhr