Partage
  • Partager sur Facebook
  • Partager sur Twitter

Plus grande chaine de caractere d'une liste

    29 novembre 2015 à 16:56:06

    J'ai une liste composée de chaines de caractères et je veux connaître la plus grande chaine :

    def longeur_max(phrase): max=0 for i in phrase: if len(i)>=max: len(i)=max print(max) 

    SyntaxError: can't assign to function call


    alors qu'avec une liste d'entiers ca marche parfaitement .

    def longeur_max(phrase):
        max=0
        for i in phrase:
            if i>=max:
             i=max
                print(max)

    Merci d'avance

    • Partager sur Facebook
    • Partager sur Twitter
    Never say GG :)
      29 novembre 2015 à 17:04:44

      Parce que ce n'est pas len(i) = max qu'il faut faire mais max = len(i) ;)
      • Partager sur Facebook
      • Partager sur Twitter
        29 novembre 2015 à 17:06:55

        Derzal a écrit:

        Parce que ce n'est pas len(i) = max qu'il faut faire mais max = len(i) ;)



        Merci, oui petite erreur d'inattention  mais ca ne fonctionne pas non plus .

        J'ai trouvé la reponse au cas ou ca servirait a quelqu'un :

        def longeur_max(phrase):

        max_index= 0

        for i in range(len(phrase)):

        if len(phrase[i]) >=len(phrase[max_index]):

        max_index = i

        return len(phrase[max_index])

        -
        Edité par Fafa596 29 novembre 2015 à 17:09:13

        • Partager sur Facebook
        • Partager sur Twitter
        Never say GG :)
          29 novembre 2015 à 17:09:02

          Utilises les balises stp pour poster ton code:

          Les 2 codes que tu présentent sont différents. Dans le dernier tu fais i = max qui effectivement ne renvoie pas d'erreur (mais qui est faux); par contre dans le premier tu fais len(i) = max et là ça te renvoie une erreur.

          Pour faire court, la valeur qu'on veut assigner se met à droite du signe égal (et non à gauche):

          max = len(i)


          Qui ne fonctionnera pas avec des entiers ;)

          -
          Edité par Olygrim 29 novembre 2015 à 17:10:36

          • Partager sur Facebook
          • Partager sur Twitter
          Précepte: Le mieux est l'ennemi du bien
          Anonyme
            29 novembre 2015 à 17:56:35

            Une solution qui sera (je pense) plus rapide et plus pythonique :

            longuestElement = max(maListe, key = lambda s: len(s)) 

            Je suis désolé, je suis sur mobile et donc je n'ai pas de balises de code ^^

            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              29 novembre 2015 à 18:29:35

              +1 Nelimee

              +1 Derzal pour la modif du code

              Autre possibilité

              longuestElement = len(max(maListe, key=len)) 



              -
              Edité par Anonyme 29 novembre 2015 à 18:38:28

              • Partager sur Facebook
              • Partager sur Twitter

              Plus grande chaine de caractere 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