2012-04-01 17 views
0
grid = [ ['x'] * w ] * h 
grid[0[2]] = 'a' 

Dies war ein Test, um eine gitterartige Struktur zu erstellen. Die Sache ist, ich kann nicht auf eine verschachtelte Liste zugreifen, weil Ganzzahlen nicht subskribiert werden können. Ich habe Probleme wie diese gesehen, aber sie sind kein Problem, das sich erinnert. Irgendwelche Vorschläge?Wie auf eine verschachtelte Zeichenfolge zugreifen?

+2

Nachdem du gelernt hast, darauf zuzugreifen, musst du etwas über veränderbare Objekte lernen ... Sayin ' – JBernardo

+1

Was JBernando wahrscheinlich sagt ist, dass du '[...] * n' nicht für veränderbare Objekte verwenden kannst, wenn du vorhast, das zu modifizieren string, oder jede andere Instanz dieser Zeichenfolge in Ihrem Raster ändert sich automatisch von unter Ihnen. Um dies auszudrücken, sind Strings in Python praktisch unveränderlich, also ist es nicht '['x'] * w ', das ist das Problem, aber wenn' rows = [['a', 'b', 'c']] * 3 ', und Sie ändern eine Zeile, alle anderen Zeilen ändern sich. Verwende '[['x' für c im Bereich (numCols)] für r im Bereich (numRows)]'. – ninjagecko

+1

... Nachtrag: '[['x'] * 3 für c im Bereich (numCols)]' funktioniert auch, da die innere Liste jedes Mal neu erstellt wird. – ninjagecko

Antwort

3

Ich glaube, Sie gemeint haben:

grid[0][2] = 'a' 

dass das erste Element in 'Raster' nehmen würde (eine Liste), und legen Sie sein drittes Element (an Position 2) auf 'a'

+1

Genau das habe ich gesucht. Vielen Dank! – nebuch

+0

@FelixTyson: Vergiss nicht, die Antworten zu verbessern und zu akzeptieren, die dir geholfen haben. :) –

Verwandte Themen