Inscription / Connexion Nouveau Sujet
Niveau Licence-pas de math
Partager :

Exercice Python

Posté par
Chameleon
27-02-20 à 20:00

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)


Pour la partie 2°), je saurais le faire en utilisant Numpy, mais je pense que l'enseignant ne veut pas qu'on l'utilise. Comment faire alors ? :/

Je n'ai pas encore essayé la partie 3°)

Merci d'avance

Posté par
lionel52
re : Exercice Python 27-02-20 à 20:32

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

Posté par
Ulmiere
re : Exercice Python 28-02-20 à 01:00

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

Posté par
Ulmiere
re : Exercice Python 28-02-20 à 01:02

Ou en utilisant col,
T = lambda mat:[col(mat,j) for j on range(len(mat[0]))]

Posté par
Chameleon
re : Exercice Python 28-02-20 à 23:11

Merci beaucoup pour vos éclaircissements



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !