Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Shop Recherche
1600 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  Dictionnaire dans liste ---> ajouter/supprimer/modifier le dico

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Dictionnaire dans liste ---> ajouter/supprimer/modifier le dico

n°2264443
xunil2003
Posté le 15-08-2015 à 01:34:50  profilanswer
 

Bon jour,
 
Je suis débutant python ma version de python est la 2.7.6.
 
J'ai fait un mini programme pour des contacts avec tkinter.
Afin d'ajouter/supprimer/modifier les contacts je crée un dictionnaire pour chaque contact que je mets dans une liste.

Code :
  1. agenda  = [{'nom': 'Dupond', 'prenom': 'Laurent', 'telephone': '0777445588', 'civilite': 'Monsieur', 'password': 'ybfyAhadrHcrio', 'identifiant': '11238741'}, {'nom': 'Dupond', 'prenom': 'Nathalie', 'telephone': '0616990077', 'civilite': 'Madame', 'password': 'tg11TIOps1Zbac', 'identifiant': '19801429'}]


 
Seulement ça marche pas , mais  ma variable passe dans la fonction valider_supprimer_dico() ?

Code :
  1. del liste[numero_contact]


 j'ai vérifié avec un print

Code :
  1. print "numero_contact : ", numero_contact


 
Je voudrais également savoir ce qu'il faut-il faire pour fermer automatiquement la fenêtre toplevel une fois cliqué sur le bouton valider de la fonction supprimer_dico() ?
Pouvez-vous m'aider ?
 
Merci .
 

Code :
  1. def supprimer_dico():
  2.     global combo
  3.     filewin = Toplevel(root)
  4.     print "\nsupprimer_dico"
  5.     print "-------------\n"
  6.     agenda = creer_dico() # importation du dictionnaire
  7.     print
  8.     compte_liste_agenda = len(agenda)
  9.     print compte_liste_agenda
  10.     liste_numero_contact = []
  11.     i = 0
  12.     while i < compte_liste_agenda:
  13. print(i)
  14. liste_numero_contact.append(i)
  15. i += 1
  16.     print "liste_numero_contact :", liste_numero_contact
  17.     #filewin = Pmw.initialise()
  18.     Label(filewin, text="Veuillez selectionner le numéro du contact à supprimer " ).grid(row=1, padx =14, pady =6)
  19.     combo = Pmw.ComboBox(filewin, labelpos = NW,
  20.        scrolledlist_items = liste_numero_contact,
  21.        listheight = 150)
  22.     combo.grid(row =2, padx =8, pady =6)
  23.     bou = Button(filewin, text ="Fermer", command = filewin.destroy)
  24.     bou.grid(row =3, padx =10, pady =6)
  25.     bou = Button(filewin, text ="Valider", command = valider_supprimer_dico)
  26.     bou.grid(row =4, padx =20, pady =16)
  27.    
  28. def valider_supprimer_dico():
  29.     global agenda
  30.     agenda = creer_dico() # importation du dictionnaire
  31.     liste_numero_contact = []
  32.     for index, agendas in enumerate(agenda):
  33.         print index, agendas
  34. liste_numero_contact.append(agendas)
  35.     print liste_numero_contact
  36.     print
  37.     numero_contact = combo.get()
  38.     print "numero_contact : ", numero_contact
  39.     del liste[numero_contact] # supprime un élément de la liste à une indice déterminé (N° id de la liste).
  40.     print liste
  41.     agenda = liste
  42. def afficher_dico():
  43.     filewin = Toplevel(root)
  44.     texte = Label(filewin, text='N° - Nom - Prénom - Téléphone - Indentifiant - Mot de passe', fg='black')
  45.     texte.pack()
  46.     texte = Label(filewin, text='--------------------------------------------------------------------------------------------', fg='black')
  47.     texte.pack()
  48.     for index, agendas in enumerate(agenda): #liste_agenda_telephone
  49.        compte_nombre_dico = (len(agenda))
  50.        print compte_nombre_dico
  51.        print index,agendas
  52.        contact = str(index)+' - '+ (agendas['nom']+' - '+ agendas['prenom']+' - '+ agendas['telephone']+' - '+ agendas['identifiant']+' - '+ agendas['password'])
  53.        compte_nombre_caractere = len(contact)
  54.        contact_ok = (contact),'\n'
  55.        texte = Label(filewin, text=contact, fg='black')
  56.        texte.pack()
  57.      
  58.     texte = Label(filewin, text='', fg='black')
  59.     texte.pack() 
  60.     button = Button(filewin, text="Fermer", command=filewin.destroy)
  61.     button.pack()


 
message :

Code :
  1. numero_contact :  0
  2. Exception in Tkinter callback
  3. Traceback (most recent call last):
  4.   File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1489, in __call__
  5.     return self.func(*args)
  6.   File "/home/laurent/python/fmsms/test_6.py", line 347, in valider_supprimer_dico
  7.     del liste[combo.get()] # supprime un élément d'une liste à une indice déterminé (N° id de la liste).
  8. TypeError: list indices must be integers, not str


 
Merci.


Message édité par xunil2003 le 15-08-2015 à 13:04:59
mood
Publicité
Posté le 15-08-2015 à 01:34:50  profilanswer
 

n°2264593
xunil2003
Posté le 19-08-2015 à 18:42:52  profilanswer
 

Bonsoir,
 
Voilà, j'ai compris pas de str mais un entier !
j'ai remplacé la ligne

Code :
  1. del liste[numero_contact]


par  

Code :
  1. variable_combo_del_contact = int(combo_del_contact.get())
  2. del liste[variable_combo_del_contact]


 
 
Je voudrais également savoir ce qu'il faut-il faire pour fermer automatiquement la fenêtre toplevel une fois cliqué sur le bouton valider de la fonction supprimer_dico() ?
Pouvez-vous m'aiguiller ?  
 
Merci.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  Dictionnaire dans liste ---> ajouter/supprimer/modifier le dico

 

Sujets relatifs
ajouter un fichier .dllajouter JMatLink au projet eclipse
[résolu] Comment ajouter des fichier d'une version sur SourceforgeClasse fille contenant une liste d'objet de classe mere?
Liste utilisateur AD fonction de plusieurs criteres[adwords] ajouter des variables de tracking à mes annonces
Supprimer extension fichierWordpress - modifier langue du moteur de recherche
Liste déroulante récupération valeurliste de fichiers dans un array trié par date : 3eme fichier non listé
Plus de sujets relatifs à : Dictionnaire dans liste ---> ajouter/supprimer/modifier le dico


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR