Le liste in Python possono contenere diversi tipi di elementi. Possono avere numeri interi, stringhe, numeri in virgola mobile, ecc. Possono anche contenere altre liste:
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
Questo è un esempio di una lista in Python che contiene un'altra lista al suo interno. Le operazioni con la lista annidata sono esattamente le stesse di quelle con la lista esterna. Si possono aggiungere elementi con append, o rimuoverli con pop, ecc. Pertanto, l'indicizzazione funzionerà come se stessimo accedendo a una lista annidata all'interno di una lista.
Simile ad avere una lista di stringhe, dove possiamo accedere a ciascun elemento usando [indice]:
greetings = [
'hi',
'hello',
'hey there',
'hey!'
]
print(greetings[0])
# hi
print(greetings[2])
# hey there
Possiamo anche gestire una matrice di numeri in questo modo:
In questo modo, accediamo a ogni riga separatamente. Successivamente, possiamo accedere a ciascun elemento della riga esattamente come faremmo con un elemento di una lista:
print(multiplication_table[2]) # [3, 6, 9, 12, 15, 18, 21, 24, 27]
l = multiplication_table[2] # l è ora [3, 6, 9, 12, 15, 18, 21, 24, 27]
print(l[0]) # 3
print(l[1]) # 6
print(l[-1]) # 27
# Oppure accedere direttamente agli elementi
print(multiplication_table[2][0]) # 3
print(multiplication_table[2][1]) # 6
print(multiplication_table[2][-1]) # 27
Il primo indice indica la “riga” che prendiamo dalla matrice, mentre il secondo indice indica la “colonna”. Quindi, la sintassi per accedere a un elemento da una lista 2D è two_d[row][column].
Sfida
Dato un intero n, crea una lista quadrata 2D di dimensione . Ti viene chiesto di dividere il quadrato in 3 parti: quella sopra la sua diagonale, quella sulla diagonale e quella sotto di essa.
I campi sopra dovrebbero essere riempiti con 0, i campi sulla diagonale dovrebbero essere riempiti con 1, e quelli sotto con 2.
L'input del programma contiene un singolo intero n - la dimensione del quadrato.
L'output del programma dovrebbe contenere il quadrato riempito.