list comprehension für Items in einer liste eine .replace(",",'.')

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
telegraph
User
Beiträge: 31
Registriert: Mittwoch 6. November 2013, 10:59

Hallo zusammen,

ich habe eine liste mir den Index 0 bis 15 Für die Ich gerne das Komma durch einen Punkt ersetzen würde, damit ich die direct sauber zum plotten sind. Und hab keine Idee wo ich anfangen soll

Code: Alles auswählen

for i in liste_of_csv:
    values = select_values(i)
    #print(values[0:15])
    data_entery_list(values[0:15])


for i in liste_of_csv:
    values = select_values(i)
    #print(values[0:15])
    data_entery_list(values[0:15 ".replace(",",".") "])
Benutzeravatar
noisefloor
User
Beiträge: 3843
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

ist `liste_of_csv` eine Liste oder eine Liste von Listen?

Die `replace` Methode kannst du nur auf Strings anwenden - sind das alles Strings in der Liste? Und du musst es natürlich elementweise anwenden, `replace` für eine ganze "Zeile" der Liste geht nicht.

Beispiel:

[codebox=pycon file=Unbenannt.txt]>>> my_list = [['12', '1,2'],['13,45', '14,67']]
>>> new_list = []
>>> for sub_list in my_list:
... new_list.append([x.replace(',', '.') for x in sub_list])
...
>>> new_list
[['12', '1.2'], ['13.45', '14.67']]
>>>[/code]

Gruß, noisefloor
telegraph
User
Beiträge: 31
Registriert: Mittwoch 6. November 2013, 10:59

Danke noisfloor,

matplotlib kann auch von einer sqlite3 Datenbank die floats plotten auch mit ",". Das hat in den test ohne DB nicht funktioniert.
Benutzeravatar
noisefloor
User
Beiträge: 3843
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

für die allermeisten Programmiersprachen sind Floats nun mal 1.23 und nicht 1,23 (also mit Punkt, nicht Komma). Matplotlib kann das auch "nur", weil es da scheinbar einen Konverter gibt, der das für die erledigt. Pandas hat / kann sowas auch.

Grundsätzlich ist es aber eine gute Idee, Floats als 1.23 (also mit Punkt) zu speichern. Für SQLite ist 1,23 sicher auch vom Typ TEXT und nicht REAL - sofern du dir nicht selber einen Konverter geschrieben hast.

Gruß, noisefloor
Antworten