Closed gvnnz closed 7 months ago
@gvnnz
def get_matrix_column(matrix, n):
return [matrix[0][n], matrix[1][n], matrix[2][n]]
Immagino che però dovrò renderla generica... Questa è specifica per la nostra matrice 3x3
Sì, così funziona solo per una 3x3, noi la vogliamo generica. Comunque l'idea di base è giusta: ritornare una nuova lista riempita con i valori delle colonne.
@gvnnz Questa è top! Poi la faccio con il ciclo for?
def get_matrix_column(matrix, n):
count = 0
column_list = []
while True:
if count < len(matrix[0]):
column_list.append(matrix[count][n])
count = count + 1
else:
break
return column_list
@gvnnz Facciamo così?
def get_matrix_column(matrix, n):
count = 0
column_list = []
for element in matrix[0]:
column_list.append(matrix[count][n])
count = count + 1
return column_list
Con il for
è decisamente più leggibile. Però non funziona con tutte le matrici. Ho provato con
matrix = [[0,1,2],[3,4,5],[6,7,8],[9,10,11],[12,13,14]]
e ritorna sempre e solo i primi tre valori.
@gvnnz
Per farla funzionare basta togliere [0]
dopo matrix
Quindi facciamo così?
def get_matrix_column(matrix, n):
count = 0
column_list = []
for element in matrix:
column_list.append(matrix[count][n])
count = count + 1
return column_list
@gvnnz Bisogna anche aggiungere:
def get_matrix_column(matrix, n):
if n < len(matrix[0]):
count = 0
column_list = []
for element in matrix:
column_list.append(matrix[count][n])
count = count + 1
return column_list
else:
return False
if n < len(matrix[0])
si deve aggiungere anche in get_matrix_row(matrix, n)
@Ace-Miky una funzione è meglio se ritorna sempre lo stesso tipo. Con la tua ultima modifica può ritornare o una lista o un booleano. Anche se puoi farlo in Python, è sconsigliato perché poi è un casino usare quelle funzioni. Quindi l'ideale qui è non fare il controllo, mettere un assert all'inizio e ritornare sempre una lista.
EDIT: avevo scritto cazzate, ho corretto il messaggio.
Ok Ho capito, comunque ne riparliamo la prossima volta che ti chiedo un paio di cose
@Ace-Miky scrivi una funzione
get_matrix_column
per ottenere la colonna di una matrice.La funzione prende in input una matrice e un intero che indica la colonna che ti interessa. La funzione poi ritorna una lista con tutti i valori della colonna.