Problème Liste [Résolu]

Signaler
Messages postés
3
Date d'inscription
dimanche 29 novembre 2020
Statut
Membre
Dernière intervention
29 novembre 2020
-
Messages postés
3
Date d'inscription
dimanche 29 novembre 2020
Statut
Membre
Dernière intervention
29 novembre 2020
-
Bonjour,

J'ai un problème avec une liste de mon programme. Lorsqu'à la fin je demande de m'afficher la liste Vecteur(m,L) , la liste est juste mais lorsque je demande à avoir un élément de la liste il me sort une liste complètement aberrante. Quel est le problème ?

Merci pour vos réponses.


Configuration: Windows / Chrome 86.0.4240.198

2 réponses

Messages postés
13943
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 janvier 2021
785
bonjour,
peux-tu partager du texte, et pas des images? tout en utilisant les balises de code:
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

tu écris que la liste sortie est aberrante.
je pense que ton code est aberrant.
qu'attends-tu comme résultat au lieu de ce qui est sorti?

comme tu n'expliques pas le résultat attendu, difficile de te conseiller.
Messages postés
3
Date d'inscription
dimanche 29 novembre 2020
Statut
Membre
Dernière intervention
29 novembre 2020

En fait ça a l'air de marcher lorsque je fais print(Vecteur(m,L) mais quand en dessous je demande print((Vecteur(m,L)[2] ) et bien ça ne me donne pas la liste qu'on peut apercevoir dans la liste de liste. En faisant print((Vecteur(m,L)[2] ) je suis censé avoir [6,2,0] et pas des nombres venant de je ne sais où. Il y a forcément une erreur mais je n'arrive pas à savoir où.

L=[[1,0,0],[2,0,0],[3,1,0]]
m=[2,1,2]

def Vecteur(m,L):
    for k in range(len(L)):
        for i in range(len(L[0])):
            L[k][i]=L[k][i]*m[k]
    return L
        

def CG(m,L):
    s=[0,0,0]
    M=0
    for k in range(len(m)):
        M+=m[k]
    for i in range(len(L[0])):
        for j in range(len(L)):
            s[i]+=(Vecteur(m,L)[j][i])
    return s


print(Vecteur(m,L))
print(CG(m,L))
print(Vecteur(m,L)[2])
Messages postés
13943
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 janvier 2021
785
suggestion:
import copy
# ...
ll=copy.deepcopy(Vecteur(m,L))
print(ll)
print(CG(m,L))
print(ll[2])
Messages postés
13943
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 janvier 2021
785 >
Messages postés
13943
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 janvier 2021

autre suggestion, si jamais je devine ce que tu souhaites obtenir:
def Vecteur(m,M):
    L=len(M)*[len(M[0]) * [None]]
    for k in range(len(M)):
        for i in range(len(M[0])):
            L[k][i]=M[k][i]*m[k]
    return L
Messages postés
3
Date d'inscription
dimanche 29 novembre 2020
Statut
Membre
Dernière intervention
29 novembre 2020
>
Messages postés
13943
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 janvier 2021

Ca a l'air de fonctionner merci.