Seite 1 von 1

Listen per Schleife erstellen

Verfasst: Dienstag 10. März 2009, 15:02
von NedNederlander
Ich hab ein kleines Problem, das ich leider nach längerem googlen und Bücher wälzen nicht lösen kann.

Ich habe eine kleien Funktion, die Werte berechnet, und diese dann in einer Liste ablegt.

Nun möchte ich das ganze in eine Schleife packen, und bei jedem Schleifendurchlauf eine neue Liste erstellen. Jede Liste soll dann einen eigenen Namen erhalten.

Ist so etwas in Python möglich?

danke!

Verfasst: Dienstag 10. März 2009, 15:12
von EyDu
Dann willst du sicherlich eine Liste in einer Liste. Automatisch Variablen zu erzeugen ist in den meisten Fällen wenig sinnvoll.

Beachten musst du nichts, du kannst Listen behandeln wie jedes andere Objekt auch. Hier mal ein ganz einfaches Beispiel:

Code: Alles auswählen

list1 = []
for i in range(10):
    temp = []
    for j in range(5)
        temp.append(j)
    list1.append(temp)
Zugriff erhälst du dann mit "list1[2][3]".

Re: Listen per Schleife erstellen

Verfasst: Dienstag 10. März 2009, 15:13
von kbr
NedNederlander hat geschrieben:Ich habe eine kleien Funktion, die Werte berechnet, und diese dann in einer Liste ablegt.

Nun möchte ich das ganze in eine Schleife packen, und bei jedem Schleifendurchlauf eine neue Liste erstellen. Jede Liste soll dann einen eigenen Namen erhalten.

Ist so etwas in Python möglich?

danke!
Speichere die erstellten Listen in einem Dictionary mit den Namen als Keys.

Verfasst: Dienstag 10. März 2009, 15:26
von NedNederlander
danke erstmal für die vorschläge.

also am liebsten wärs mir, wenn ich einfach einzelne listen hätte.

mein programm besteht aus einzelnen modulen, und für die weiterverarbeitung der listen wärs viel komfortabler, wenn es wirklich einzelne listen sind.

mein problem ist eben die benennung der listen, da ja jede liste automatisch bei einem schleifendurchlauf einen namen bekommen muss.

Verfasst: Dienstag 10. März 2009, 16:46
von EyDu
Dann binde die Listen doch an Namen, wenn du sie brauchst.

Verfasst: Mittwoch 11. März 2009, 13:30
von NedNederlander
EyDu hat geschrieben:Dann binde die Listen doch an Namen, wenn du sie brauchst.
was meinst du mit "an Namen binden"?

das problem ist dass es mehrere tausend listen werden, das sollte alles automatisch ablaufen.

Verfasst: Mittwoch 11. März 2009, 13:34
von Hyperion
NedNederlander hat geschrieben:
EyDu hat geschrieben:Dann binde die Listen doch an Namen, wenn du sie brauchst.
was meinst du mit "an Namen binden"?
Einfach das hier

Code: Alles auswählen

tmp = []
das problem ist dass es mehrere tausend listen werden, das sollte alles automatisch ablaufen.
Und Du kannst Dir einfache Namen bei 1000 (!) Listen wirklich merken, um darauf gezielt zuzugreifen?

Ich werde das Gefühl nicht los, dass Du da etwas mit einem falschen Ansatz lösen willst.

Was spricht denn gegen Listen in Listen oder ein Dict mit Listen?

Verfasst: Mittwoch 11. März 2009, 13:47
von NedNederlander
wie die listen heißen ist mir relativ wurst. kann gut sein dass mein ansatz der falsche ist, aber so stell ichs mir am einfachsten vor.

ich denke das mit dem dictonary würde gehen. da hab ich ein wenig rumprobiert, aber ich hab noch keine möglichkeit gefunden, wie ich da mittels einer schleife neue elemente zum dictonary hinzufüge.

Verfasst: Mittwoch 11. März 2009, 14:02
von 10111
Hab mal schnell was mit einem Dictionary gebastelt. Sollte sich eigentlich selbst erklären.

Code: Alles auswählen

>>> d = {}
>>> for i in range(5):
...     temp = []
...     for j in range(i):
...         temp.append(j)
...     d['liste'+str(i)] = temp
... 
>>> d
{'liste1': [0], 'liste0': [], 'liste3': [0, 1, 2], 'liste2': [0, 1], 'liste4': [0, 1, 2, 3]}
>>> d['liste1'].append(9)
>>> d
{'liste1': [0, 9], 'liste0': [], 'liste3': [0, 1, 2], 'liste2': [0, 1], 'liste4': [0, 1, 2, 3]}

Verfasst: Mittwoch 11. März 2009, 15:15
von DasIch
Das mit dem dict ist grausam und unpythonisch. Eine Liste von Listen wäre deutlich eleganter.

Verfasst: Mittwoch 11. März 2009, 15:24
von 10111
@DasIch: Du hast recht. Ich wollte nur zeigen, dass es mit einem dict geht. Der Sinn erschließt sich mir allerdings in diesem Fall selbst nicht. Ein Fall für ein dict wäre für mich z.B., wenn der Key eine Vokabel ist und in der zugehörigen Liste dann verschiedene Übersetzungen stehen.

Verfasst: Mittwoch 11. März 2009, 16:01
von Hyperion
Das Problem ist doch, dass der OP uns nicht verrät, wie es zu den 1000enden Listen kommt und mit welchem Bezug er diese später wieder benötigt! Solange kann man außer generellen Wegen nichts genaues dazu sagen.