Listes en 2D

Les listes Python peuvent contenir différents types d'éléments. Elles peuvent comporter des entiers, des chaînes de caractères, des nombres à virgule flottante, etc. Elles peuvent également contenir d'autres listes :
l = [4, 5, 'hi', 3.14, ['how', 'are', 'you', '?'], 64]
print(l[2])       # hi
print(l[2][0])    # h
print(l[-1])      # 64
print(l[4])       # ['how', 'are', 'you', '?']
inner = l[4]
print(inner[1])   # are
print(l[4][1])    # are
Ceci est un exemple d'une liste en Python qui contient une autre liste. Les opérations avec la liste imbriquée sont exactement les mêmes que celles avec la liste externe. On peut ajouter des éléments avec append, ou les supprimer avec pop, etc. Par conséquent, l'indexation fonctionnera comme si nous accédions à une liste imbriquée à l'intérieur d'une liste.
Semblable au fait d'avoir une liste de chaînes de caractères, où nous pouvons accéder à chaque élément avec [index] :
greetings = [
    'hi',
    'hello',
    'hey there',
    'hey!'
]


print(greetings[0])
# hi
print(greetings[2])
# hey there
Nous pouvons même conserver une matrice de nombres de cette manière :
multiplication_table = [
    [1, 2,  3,  4,  5,  6,  7,  8,  9],
    [2, 4,  6,  8,  10, 12, 14, 16, 18],
    [3, 6,  9,  12, 15, 18, 21, 24, 27],
    [4, 8,  12, 16, 20, 24, 28, 32, 36],
    [5, 10, 15, 20, 25, 30, 35, 40, 45],
    [6, 12, 18, 24, 30, 36, 42, 48, 54],
    [7, 14, 21, 28, 35, 42, 49, 56, 63],
    [8, 16, 24, 32, 40, 48, 56, 64, 72],
    [9, 18, 27, 36, 45, 54, 63, 72, 81]
]

print(multiplication_table[0])
# [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(multiplication_table[2])
# [3, 6, 9, 12, 15, 18, 21, 24, 27]
De cette façon, nous accédons à chaque ligne séparément. Ensuite, nous pouvons accéder à chaque élément de la ligne exactement comme nous le ferions pour un élément d'une liste :
print(multiplication_table[2])     # [3, 6, 9, 12, 15, 18, 21, 24, 27]

l = multiplication_table[2]        # l est maintenant [3, 6, 9, 12, 15, 18, 21, 24, 27]
print(l[0])                        # 3
print(l[1])                        # 6
print(l[-1])                       # 27

# Ou accéder directement aux éléments
print(multiplication_table[2][0])  # 3
print(multiplication_table[2][1])  # 6
print(multiplication_table[2][-1]) # 27
Le premier indice indique la « ligne » que nous choisissons dans la matrice, tandis que le second indice indique la « colonne ». Ainsi, la syntaxe pour accéder à un élément d'une liste en 2D est two_d[row][column].

Défi

Étant donné un entier n, créez une liste carrée en 2D de taille . Vous êtes invité à diviser le carré en 3 parties. Celle au-dessus de sa diagonale, celle sur la diagonale, et celle en dessous.
Les cases au-dessus doivent être remplies avec 0, les cases sur la diagonale avec 1, et celles en dessous avec 2.
L'entrée du programme contient un entier n unique - la taille du carré.
La sortie du programme doit contenir le carré rempli.
Entrée
Sortie
4
1 0 0 0 2 1 0 0 2 2 1 0 2 2 2 1
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue