web-dev-qa-db-fra.com

doubles crochets côte à côte en python

Je suis complètement nouveau chez Python et j'ai une mission à venir. Le professeur a demandé que nous examinions des exemples d'utilisateurs codant le triangle de Pascal en Python pour quelque chose qui serait «similaire». 

J'ai réussi à trouver plusieurs façons de le coder, mais j'ai trouvé plusieurs personnes utilisant un code que je ne comprenais pas. 

Essentiellement, je cherche à savoir ce que cela signifie (ou ce que fait) quand vous voyez une liste ou une variable qui a deux crochets côte à côte. Exemple de code:

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])

Vous verrez que la ligne 7 a ceci:

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

Je sais que les crochets sont des listes. Je sais que les crochets entre crochets sont des listes dans/des listes. Quelqu'un peut-il décrire ce que fait un crochet à côté d'un crochet?

7
Syrum

Si vous avez une liste

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

Alors l [0] est "foo", l [1] est "bar", l [2] est un buz.

De même, vous pourriez avoir une liste à la place de chaînes.

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

Maintenant, l [0] est [1,2,3]. 

Que faire si vous souhaitez accéder au deuxième élément de cette liste de numéros? Tu pourrais dire:

l[0][1]

l [0] obtient d'abord la liste, puis [1] choisit le deuxième numéro qu'elle contient. C'est pourquoi vous avez "crochet entre crochets".

8
Bemmu

Les crochets permettent de définir des listes, mais aussi d’obtenir des éléments à partir de listes. 

Lorsque vous avez une liste de listes et que vous voulez quelque chose d'une liste interne, vous devez obtenir cette liste interne (en utilisant des crochets), puis insérer l'élément souhaité à l'intérieur (en utilisant à nouveau des crochets).

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