Problème Liste

Résolu/Fermé
tomBerg Messages postés 3 Date d'inscription dimanche 29 novembre 2020 Statut Membre Dernière intervention 29 novembre 2020 - 29 nov. 2020 à 15:09
tomBerg Messages postés 3 Date d'inscription dimanche 29 novembre 2020 Statut Membre Dernière intervention 29 novembre 2020 - 29 nov. 2020 à 18:51
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

yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024 1 471
29 nov. 2020 à 16:00
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
tomBerg Messages postés 3 Date d'inscription dimanche 29 novembre 2020 Statut Membre Dernière intervention 29 novembre 2020
Modifié le 29 nov. 2020 à 16:34
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
yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024 1 471
29 nov. 2020 à 18:11
suggestion:
import copy
# ...
ll=copy.deepcopy(Vecteur(m,L))
print(ll)
print(CG(m,L))
print(ll[2])
0
yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024 1 471 > yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024
29 nov. 2020 à 18:25
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
tomBerg Messages postés 3 Date d'inscription dimanche 29 novembre 2020 Statut Membre Dernière intervention 29 novembre 2020 > yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024
29 nov. 2020 à 18:51
Ca a l'air de fonctionner merci.
0