Bonsoir,
J'ai un exercice à faire en Python qui me pose quelques soucis. Si vous pouviez m'éclairer sur le chemin à prendre, ce serait gentil !
En voici l'énoncé:
M=[[1,2,3,4],
[5,6,7,8],
[9,10,11,12]]
1°)Remplir l'équivalent de la matrice ci-dessus en partant de M = [] à l'aide de boucles et en utilisant la méthode append.
2°) Définir une fonction col(mat, j) permettant de récupérer une colonne de la matrice. Par exemple col(M, 1) renverra [2, 6, 10].
3°)Coder la transposition de la matrice: les lignes deviennent des colonnes et vice-versa.
~~~~~~~~~
Pour la partie 1°) j'ai écrit cela, mais je n'en suis pas très satisfait. Existe t-il une meilleur méthode ?
M=[]
i=1
while i < 12 :
M.append([i,i+1,i+2,i+3])
i=i+4
print(M)
Bah la 1 ta correction est bizarre mais cest lenoncé qui veut ça donc ca me choque pas
Pour la 2 tu peux écrire :
res =[]
for ligne in range(len(M)) :
res.append(M[ligne][i])
M = [[4*i+j%4+1 for j in range(4)] for i in range(3)]
col=lambda mat,j:[mat[i][j] for i in range(len(mat))]
Bien-sûr je ne vérifie pas que mat est une matrice bien formée
Quant à la transposition, tu peux utiliser la fonction zip, mais pour commencer petit, tu peux faire
T=lambda mat:[[mat[i][j] for i in range(len(mat))] for j in range len(mat[0]))]
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :