2016-12-11 6 views
5

Ich bin komplett neu bei Python und habe eine Aufgabe vor mir. Der Professor hat uns gebeten, Beispiele von Benutzern zu betrachten, die Pascals Dreieck in Python für etwas kodieren, das "ähnlich" sein wird.doppelte eckige Klammern Seite an Seite in Python

Ich habe es geschafft, mehrere Wege zu finden, es zu kodieren, aber ich habe mehrere Leute gefunden, die einen Code benutzen, den ich nicht verstehe.

Im Wesentlichen möchte ich herausfinden, was es bedeutet (oder tut), wenn Sie eine Liste oder Variable sehen, die zwei eckige Klammern nebeneinander hat. Beispielcode:

pascalsTriangle = [[1]] 
rows = int(input("Number of rows:")) 
print(pascalsTriangle[0]) 
for i in range(1,rows+1): 
    pascalsTriangle.append([1]) 
    for j in range(len(pascalsTriangle[i-1])-1): 
     pascalsTriangle[i].append(pascalsTriangle[i-1][j]+ pascalsTriangle[i-1][j+1]) 
    pascalsTriangle[i].append(1) 
print(pascalsTriangle[i]) 

Sie diese Zeile sehen werden 7 hat dies:

pascalsTriangle[i].append(pascalsTriangle[i-1][j]+pascalsTriangle[i-1][j+1]) 

Ich weiß, dass in eckigen Klammern sind Listen. Ich weiß, dass eckige Klammern in eckigen Klammern Listen innerhalb von Listen sind. Kann jemand beschreiben, was eine eckige Klammer neben einer eckigen Klammer tut?

+0

Sie indexieren eine Unterliste in der Hauptliste. –

Antwort

4

Wenn Sie eine Liste

l = ["foo", "bar", "buz"] 

Dann l haben [0] "foo", l [1] ist "bar", l [2] ist Buz.

In ähnlicher Weise könnten Sie eine Liste anstelle von Strings haben.

l = [ [1,2,3], "bar", "buz"] 

Jetzt ist [0] [1,2,3].

Was ist, wenn Sie auf das zweite Element in dieser Liste zugreifen möchten? Man könnte sagen:

l[0][1] 

l [0] wird zunächst die Liste, dann [1] nimmt darin die zweite Zahl aus. Deshalb haben Sie "eckige Klammer neben eckige Klammer".

+1

Vielen Dank. Ich finde das Zeug oft schwer zu verstehen, aber das war eine extrem klare Antwort. – Syrum

2

Eckige Klammern dienen zum Definieren von Listen, aber auch zum Abrufen von Listen.

Wenn Sie eine Liste von Listen haben und etwas aus einer inneren Liste wollen, müssen Sie diese innere Liste (mit Klammern) holen und dann das gewünschte Ding hineinholen (mit eckigen Klammern).

lol = [[1, 2, 3], [4, 5, 6]] 
lol[1] 
# [4, 5, 6] 
lol[1][0] 
# 4 
+0

Danke für die Antwort! – Syrum