Problème Liste

Résolu
tomBerg -  
 tomBerg -
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

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    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.
    0
  2. tomBerg
     
    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])
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      suggestion:
      import copy
      # ...
      ll=copy.deepcopy(Vecteur(m,L))
      print(ll)
      print(CG(m,L))
      print(ll[2])
      0
      1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         
        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
        0
      2. tomBerg > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Ca a l'air de fonctionner merci.
        0