Liste erstellen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Miralem23
User
Beiträge: 10
Registriert: Sonntag 21. November 2010, 19:03

Hallo,

ich will in Python eine Liste erstellen, die folgenden Aufbau hat

liste = [[0,0], [0,1], [0,2],
[1,0], [1,1], [1,2],
[2,0], [2,1], [2,2]]

Ich hab bisher mit folgendem Code, das geschafft:

Code: Alles auswählen

liste = [[] for x in range(3)]

k = 0 # erstes Objekt in der Liste
m = 0 # zweites Objekt in der Liste
while k <= 2:
              liste[k].append(k)
              liste[k].append(m)   # liste =  [k,m]

              k += 1


print(liste)
>>> [[0, 0], [1, 0], [2, 0]

Also die erste Spalte, aber wie mache ich den Rest?
hab schon versucht in die While-Schleife das noch einzufügen:

liste[m].append(m)
liste[m].append(k)
m += 1

aber das Ergebnis ist nicht das was ich haben will :(
Benutzeravatar
DaMutz
User
Beiträge: 202
Registriert: Freitag 31. Oktober 2008, 17:25

so zum Beispiel:

Code: Alles auswählen

>>>[[a,b] for a in range(3) for b in range(3)]
[[0, 0], [0, 1], [0, 2], [1, 0], [1, 1], [1, 2], [2, 0], [2, 1], [2, 2]]
das heisst mit zwei verschachtelten for - Schleifen.
Miralem23
User
Beiträge: 10
Registriert: Sonntag 21. November 2010, 19:03

Super, besten Dank^^

PYthon gefällt mir immer besser und mehr =)
BlackJack

Alternative mit `itertools.product()`:

Code: Alles auswählen

In [62]: map(list, product(xrange(3), xrange(3)))
Out[62]: [[0, 0], [0, 1], [0, 2], [1, 0], [1, 1], [1, 2], [2, 0], [2, 1], [2, 2]]
Antworten