Partage
  • Partager sur Facebook
  • Partager sur Twitter

aide pour l utilisation de liste

débutant

    13 mai 2011 à 0:59:47

    Bonjour,
    Voilà je suis débutant avec python. Il s'agit ici d'un programme qui permet d'afficher une image lorsque l'on tape un code. Mais j ai environ une vingtaine d'image à placé. J aurais voulu savoir comment je devais faire.
    Je dois tout mettre dans ma liste à la suite? Et puis comment les retrouvé? Dois je redéfinir à chaque fois la partie recherche pour chaque image?

    from Tkinter import *
     
    dico = {('A', 'Ala', 'Alanine'): ('Alanine.gif', "description\n de l'acide")}
     
    def recherche(col):
        def affiche():
            aa = entr1.get()
            result = [dico[cle] for cle in dico if cle[col] == aa]
            if result:
                img = result[0][0]
                desc = result[0][1]
                photo = PhotoImage(file='Alanine.gif')  
                labimg.configure(image=photo)
                labimg.image = photo
                labdesc.configure(text=desc)
     
        fen1 = Toplevel(fen)
        fen1.title("introduisez la lettre")
        Label(fen1, text="introduisez").grid(row=0, column=0, padx=5, pady=5)
        entr1= Entry(fen1)
        entr1.grid(row=0, column=1, padx=5, pady=5)
        entr1.focus_set()
        labimg = Label(fen1, text='Image')
        labimg.grid(row=1, column=0, columnspan=2)
        labdesc = Label(fen1, text='Description')
        labdesc.grid(row=1, column=2)
        Button(fen1, text='Continuer', command=affiche).grid(row=2, column=1, pady=5, padx=5)
        Button(fen1, text="quitter", command=fen1.destroy).grid(row=2,column=2, pady=5, padx=5)
     
    fen = Tk()
    fen.title("base de données acide aminés")
    Label(fen, text="Cliquer sur votre choix", fg="red").pack(padx=15, pady=15)
    Button(fen, text="1 lettre", fg="purple", command=lambda :recherche(0)).pack(side=LEFT, padx=15, pady=15)
    Button(fen, text="3 lettres", fg="blue", command=lambda :recherche(1)).pack(side=LEFT, padx=15, pady=15)
    Button(fen, text="nom complet", fg="cyan", command=lambda :recherche(2)).pack(side=LEFT, padx=15, pady=15)
    Button(fen, text="Quitter", fg="maroon", command=fen.quit).pack(side=LEFT, padx=15, pady=15)
    fen.mainloop()
    


    Ma pour ma liste je dois tout mettre à la suite comme cela? :
    dico = {('A', 'Ala', 'Alanine'): ('Alanine.gif', "description\n de l'acide"), ('R', 'Arg', 'Arginine'): ('Arginine.gif', "description\n de l'acide")}
    


    Je suis vmnt bloqué donc si qqn avait une idée ça serait sympa :)
    Merci.
    • Partager sur Facebook
    • Partager sur Twitter
      13 mai 2011 à 6:07:44

      Bonjour.
      Une fonction dans une fonction ca le fait moyen...

      J'ai pas testé le code, mais cette partie n'est pas bugé par hasard?
      result = [dico[cle] for cle in dico if cle[col] == aa]
      


      Et au passage, tu n'utilise pas une liste mais un dictionnaire...
      • Partager sur Facebook
      • Partager sur Twitter

      aide pour l utilisation de 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