Seite 1 von 1

Nested list assignments

Verfasst: Sonntag 13. März 2011, 05:04
von Randomtheories
Hallo zusammen,

bin jetzt seit Stunden am Grübeln und recherchieren, warum das nicht klappt wie ich will und ich werde bald wahnsinnig. Erklärungen zu meinem Problem finde ich auch nicht. Ich benutze Python 2.6.
Also hier mein Problem:
line = [20 * ['o']]
someGrid = 20 * line
Jetzt habe ich eine Liste bestehend aus Listen und möchte gerne mit einem Index die 'line' auswählen und mit einem zweiten Index das jeweilige Listenelement. Ungefähr so:
someGrid[3][2] = 'x'
print someGrid
Problem ist, dass er mir dadurch eine ganze Spalte umschreibt. Ich verstehe nicht ganz, wie das Konstrukt someGrid[3][2] wirkt und wie ich ein einzelnes Listenelement in einer nested list ansprechen kann. Wenn jemand weiterführende Erklärungen hat, bin ich wirklich sehr dankbar.

LG

Re: Nested list assignments

Verfasst: Sonntag 13. März 2011, 05:41
von Hyperion
Also zunächst einmal ist der Code für die Erzeugung bei Dir sicherlich nicht so, wie gewünscht.

Dein Problem ist aber die Tatsache, dass Du keine neuen Objekte erzeugst, sondern 20 mal dasselbe (Listen)-Objekt in eine Liste packst:

Code: Alles auswählen

In [20]: line = ['o'] * 20

In [21]: someGrid = [line] * 20

In [22]: someGrid[0] is someGrid[1]
Out[22]: True