Partage
  • Partager sur Facebook
  • Partager sur Twitter

[QST] liste d'element unique

Sujet résolu
    8 août 2011 à 18:43:31

    Bonjour a tous
    je suis en train de faire le TP du pendu.
    Dans celui-ci je stocke chaque lettre que l'utilisateur a trouver dans une liste.
    Malheureusement, si l'utilisateur entre deux fois la même lettre, j'ai deux fois la lettre dans la liste.


    Donc j'ai essayé de trouver une structure de données ensembliste afin que je n'ai pas deux éléments identique dans ma structure de données.

    J'ai donc trouver la fonction set(). Celle-ci transforme bien une liste en un ensemble d'element unique, mais le probleme est que après je ne peux plus faire de append....

    voici l'erreur sur le append:
    Traceback (most recent call last):
    File "D:\........\pendu.py", line 36, in <module>
    lettreTrouver.append(lettre)
    AttributeError: 'set' object has no attribute 'append'



    et le code:
    .............
    # On recup la lettre données par l'utilisateur
        lettre = input("Entrez une lettre: ")
        lettre = lettre.lower()
    
        print("Vérifié si la lettre a deja été entré")
    
        # On verifie si la lettre est dans le mot
        if(fonction.inWord(mot,lettre)):
            print("Oui, la lettre est dans le mot")
            lettreTrouver.append(lettre)
            print(type(lettreTrouver)) # me retourne <class 'list'>
            lettreTrouver=set(lettreTrouver)
    ...............
    

    Donc avez vous une idée de comment faire ceci ? comment ajouter un élément a un set ?
    • Partager sur Facebook
    • Partager sur Twitter
    Le jour où Microsoft fera des choses qui ne plantent pas, ça sera des clous ...
      8 août 2011 à 19:22:41

      Salut,

      La première chose à faire quand tu découvres quelque chose, c'est de t'en informer. Tu as trouvé le type set, c'est excellent, mais maintenant, tu dois parcourir la documentation par toi-même pour trouver comment l'utiliser. Si tu dois poser une question à chaque fois que tu découvres quelque chose de nouveau, tu n'avanceras jamais.
      Bref, tu peux retrouver la réponse ici.
      • Partager sur Facebook
      • Partager sur Twitter
        8 août 2011 à 19:46:25

        Et bien ecoute, je t'avourai que je code dans un paquet d'autre langage donc les doc sa me connaît :D .

        Mais il faut dire que la doc python est vraiment horrible, je ni comprend strictement rien .... (ah, les joie de la javadoc :-° ... )

        Enfin j'ai tout de même trouver la méthode add ( logique, pourquoi je n'ai pas pensé a ça .... mystère :p )


        Par contre, pourrai ton me dire pourquoi la fonction type(set(ma_liste)) me dit que c'est une listeet non un set ?
        • Partager sur Facebook
        • Partager sur Twitter
        Le jour où Microsoft fera des choses qui ne plantent pas, ça sera des clous ...
          8 août 2011 à 22:13:31

          Citation : hannibal.76

          Et bien ecoute, je t'avourai que je code dans un paquet d'autre langage donc les doc sa me connaît :D .

          Mais il faut dire que la doc python est vraiment horrible [...]


          :D on a quand même vu pire hein, m'enfin.
          (moi je l'aime bien =))

          Citation : hannibal.76

          Par contre, pourrai ton me dire pourquoi la fonction type(set(ma_liste)) me dit que c'est une listeet non un set ?


          Comme ça, je ne vois pas trop comment c'est possible.
          Un bout de code qui reproduise ce cas et qu'on puisse tester peut-être ?
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            8 août 2011 à 22:39:33

            >>> ls = list(range(10))
            >>> type(ls)
            <class 'list'>
            >>> type(set(ls))
            <class 'set'>
            >>> help(set)
            [...]
            
            • Partager sur Facebook
            • Partager sur Twitter
              8 août 2011 à 23:07:56

              Citation

              Dans celui-ci je stocke chaque lettre que l'utilisateur a trouver dans une liste.
              Malheureusement, si l'utilisateur entre deux fois la même lettre, j'ai deux fois la lettre dans la liste.



              pourquoi compliquer le code ?
              if not lettre in liste: liste.append(lettre)
              else: oops()
              
              • Partager sur Facebook
              • Partager sur Twitter

              Python c'est bon, mangez-en. 

                9 août 2011 à 8:05:41

                Citation : Grinwik

                Citation : hannibal.76

                Et bien ecoute, je t'avourai que je code dans un paquet d'autre langage donc les doc sa me connaît :D .

                Mais il faut dire que la doc python est vraiment horrible [...]


                :D on a quand même vu pire hein, m'enfin.
                (moi je l'aime bien =))



                Bah des deux docs (mais même si on rajoutait les docs de la STD C++, ou de Boost, et puis la doc de Haskell ou bien la doc irrégulière de Perl), je préfère largement la doc Python. Au moins, quand tu la lis, on ne se contente pas de te lister bêtement les fonctions de l'API, et on te donne des infos sur la meilleure façon d'utiliser chaque module.
                • Partager sur Facebook
                • Partager sur Twitter
                Zeste de Savoir, le site qui en a dans le citron !
                  9 août 2011 à 18:32:37

                  J'ai comprit mon erreur pour la fonction type() ;)

                  @josmiley: merci, je n'avais pas pensé du tout a cela.... :honte:


                  Merci a vous tous ;)
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Le jour où Microsoft fera des choses qui ne plantent pas, ça sera des clous ...

                  [QST] liste d'element unique

                  × 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