Seite 1 von 1
Mehrere Listen automatisch definieren
Verfasst: Donnerstag 11. Juni 2020, 17:28
von Crinchy
Hallo zusammen,
ich habe eine Datei, in der sich 100 Reihen mit jeweils 10 Zahlenwerten befinden. Jede einzelne Zeile mit diesen jeweils 10 Zahlenwerten möchte ich automatisiert in eine eigene Liste einfügen. Bei einer definierten Liste funktioniert das für eine Zeile. Aber wie kann ich die 100 Listen definieren, um die jeweiligen Zahlenwerte einzufügen?
Ich habe schon lange danach gesucht und nichts gefunden. In den Tutorials habe ich nur gefunden, wie man Elemente hinzufügt, löscht oder adressiert.
Vielen Dank für eure Hilfe.
Re: Mehrere Listen automatisch definieren
Verfasst: Donnerstag 11. Juni 2020, 17:47
von Sirius3
Es ist egal, ob Du Zahlen in eine Liste einfügst, oder Listen. Wenn Du also Listen mit Zahlen erzeugen kannst, dann hast Du alles, um Dein Problem zu lösen.
Also eine Liste mit 100 Einträgen.
Wie sieht denn Dein Code bisher aus?
Was willst Du damit machen? Je nachdem könnte Numpy oder Pandas nützlich sein.
Re: Mehrere Listen automatisch definieren
Verfasst: Donnerstag 11. Juni 2020, 19:46
von Crinchy
Ist es denn prinzipiell möglich, wie in diesem Beispiel dargestellt, die 100 Einträge jeweils in generierte Listen zu schreiben?
Also liste1, liste2, liste3, .... liste100
Code:
with open('Datei.txt') as csvfile:
lines = csvfile.readlines()
n=1
while n <= 100
liste(n) = [lines [n]]
n=n+1
So in der Art würde ich mir das vorstellen. Das mit "liste(n)" funktioniert allerdings nicht. Kann man das irgendwie bewerkstelligen?
Als Ergebnis sollen also 100 Listen mit jeweils 10 Einträgen vorhanden sein.
Re: Mehrere Listen automatisch definieren
Verfasst: Donnerstag 11. Juni 2020, 20:06
von Sirius3
Statt Variablennamen durchzunummerieren nimmt man eine Liste. Und die hast Du schon, `lines`.
Re: Mehrere Listen automatisch definieren
Verfasst: Donnerstag 11. Juni 2020, 20:09
von sparrow
Schreib deinen Code immer in Code-Tags. Die werden eingefügt, wenn du in "Vollständiger Editor & Vorschau" den </> Button drückst.
Dann rätst du hier offensichtlich Syntax. Raten nützt aber nichts.
Wenn du, wie du schreibst, weißt wie man bei einer Liste "Elemente hinzufügt, löscht oder adressiert", dann hast du alles Wissen was du brauchst.
Du steckst 10 Einträge in eine Liste.
Und diese Liste steckst du in eine andere Liste.
Dann steckst du 10 Einträge in eine neue Liste.
Und die Liste steckst du in die Liste, in der bereits die erste Liste enthalten ist.
Einer Liste ist egal, was die einzelnen Elemente sind. Die Elemente können auch Listen sein.
Aber wie Sirius3 schon schreibt, genau das hast du schon.
Re: Mehrere Listen automatisch definieren
Verfasst: Donnerstag 11. Juni 2020, 21:18
von __blackjack__
@Crinchy: Wenn das tatsächlich eine CSV-Datei ist, dann möchtest Du vielleicht das `csv`-Modul verwenden um die einzulesen. Und wenn die Datei Zahlen enthält, müsstest Du die dann vielleicht noch tatsächlich in Zahlen umwandeln.
Sollten es mehr als 100 Zeilen in der Datei sein, Du aber nur die ersten 100 davon haben willst, hilft `itertools.islice()` dabei das zu begrenzen. Oder das externe `more_itertools.take()` wenn es auch gleich in einer Liste gesammelt werden soll.
Wenn ich mir den Pseudocode in Deinem Beitrag ansehe, würde ich auch dringend ein Python-Grundlagentutorial empfehlen. Denn eine ``while``-Schleife ist hier das falsche Mittel.
Warum willst Du jede Zeile als einziges Element noch mal in eine Liste stecken? Das macht wenig bis gar keinen Sinn.