Partage
  • Partager sur Facebook
  • Partager sur Twitter

Remplacer un élément d'une liste

    30 décembre 2015 à 11:32:48

    Bonjour,

    Voici un programme que j'ai écrit :

    def floutage_simple(T):
        for i in range(len(T)):
            if T[i]==0:
                l=T[i]
                l1=T[i+1]
                for k in range(len(l)):
                    if l[k]==0:
                        l[k]=(l[k]+l1(k)+l(k+1)+l1(k+1))/4
                    elif l[k]==(len(l)-1):
                        l[k]=(l[k]+l1[k]+l[k-1]+l1[k-1])/4
                    else:
                        l[k]=(l[k]+l1[k]+l[k+1]+l1[k+1]+l[k-1]+l1[k-1])/6
            elif T[i]==(len(T)-1):
                if T[i]==0:
                    l=T[i]
                    l1=T[i-1]
                    for k in range(len(l)):
                        if l[k]==0:
                            l[k]=(l[k]+l1(k)+l(k+1)+l1(k+1))/4
                        elif l[k]==(len(l)-1):
                            l[k]=(l[k]+l1[k]+l[k-1]+l1[k-1])/4
                        else:
                            l[k]=(l[k]+l1[k]+l[k+1]+l1[k+1]+l[k-1]+l1[k-1])/6
            else:
                l=T[i]
                l1=T[i-1]
                l2=T[i+1]
                for k in range(len(l)):
                    if l[k]==0:
                        l[k]=(l[k]+l1(k)+l2[k]+l(k+1)+l1(k+1)+l2[k+1])/6
                    elif l[k]==(len(l)-1):
                        l[k]=(l[k]+l1[k]+l2[k]+l[k-1]+l1[k-1]+l2[k-1])/6
                    else:
                        l[k]=(l[k]+l1[k]+l2[k]+l[k+1]+l1[k+1]+l2[k+1]+l[k-1]+l1[k-1]+l2[k-1])/9
        return T

    Le logiciel me renvoie un message d'erreur quand je le teste (TypeError: 'list' object is not callable), je suppose que c'est dû au fait que j'écris l[k]=... qui n'est peut-être pas correct syntaxiquement. Pourtant, j'ai lu quelque part que c'était comme ça que l'on doit procéder. S'agit-il d'une autre version de Python (je suis sur 3.4 et j'ai l'impression que plein de trucs diffèrent par rapport à ce qui se trouve sur internet).

    Pourriez-vous m'éclairer ? Merci

    • Partager sur Facebook
    • Partager sur Twitter
      30 décembre 2015 à 12:10:15

      Non, c'est dû au fait que tu utilises les parenthèses sur une liste: l1(k), etc... ligne 19, 30 et peut-être ailleurs aussi. Ce sont les crochets qu'on utilisent pour accéder aux éléments d'une liste ;)

      -
      Edité par Olygrim 30 décembre 2015 à 12:10:26

      • Partager sur Facebook
      • Partager sur Twitter
      Précepte: Le mieux est l'ennemi du bien
        30 décembre 2015 à 12:15:10

        Ah oui c'était vraiment débile, désolé

        Merci en tout cas !

        • Partager sur Facebook
        • Partager sur Twitter

        Remplacer un élément d'une liste

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown