IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

comment modifier une liste dans un dictionnaire?


Sujet :

Python

  1. #1
    Membre régulier Avatar de Mydriaze
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 192
    Points : 95
    Points
    95
    Par défaut comment modifier une liste dans un dictionnaire?
    Bonjour tout le monde !

    Je vous appelle au secours parce que je tourne en rond dans un probleme de syntax, je n'arrive pas à m'en sortir...

    j'ai un dictionnaire avec 1 clé , et 5 éléments : 4 chaines et une liste
    et je n'arrive pas à créer ni à gérer cette liste...

    Par exemple si je fais la requête :

    SELECT cle, elt_1, elt_2, elt_3, elt_4, elt_5 FROM ma_table Limit 10;
    +-----+-------+-------+-------+-------+-------+
    | cle | elt_1 | elt_2 | elt_3 | elt_4 | elt_5 |
    +-----+-------+-------+-------+-------+-------+
    | 1 | valr_1| 208435| G | R | AE1.1 |
    | 1 | valr_1| 208435| G | R | AE2.1 |
    | 1 | valr_1| 208435| G | R | AE3.1 |
    | 1 | valr_1| 208435| G | R | AE4.1 |
    | 1 | valr_1| 208435| G | R | AE5.1 |
    | 1 | valr_1| 208435| G | R | AE6.1 |
    | 1 | valr_1| 208435| G | R | AE7.1 |
    | 1 | valr_1| 208435| G | R | AE8.1 |
    | 1 | valr_1| 208435| G | R | AE9.1 |
    | 1 | valr_1| 208435| G | R | AE0.1 |
    +-----+-------+-------+-------+-------+-------+
    10 rows in set (0.12 sec)


    et je voudrais obtenir ds dico_liste_numacc[1]

    ('valr_1', '208435', 'G', 'R',( 'AE1.1', 'AE2.1', 'AE3.1', 'AE4.1', 'AE5.1', 'AE6.1', 'AE7.1', 'AE8.1', 'AE9.1', 'AE0.1', ))


    j'ai fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    ######## fonctions ############
     
    # Etablit la connection avec la base
     
    def connection ():
     
        # Connexion à la banque (attention à changer selon l'utilisateur, etc...)
        bque = MySQLdb.connect(db="ma_table", host = "mon_host", user = "moua")
     
        # Ouverture d'un curseur dans la banque
        cursr = bque.cursor()
     
        return cursr
     
     
    # Fetch le curseur
     
    def execute_requete (cursr,requete):
     
        # Execute_requete de la requête
        exe = cursr.execute(requete)
     
        # Récupération du résultat
        rst = cursr.fetchall()
     
        return rst
     
     
    # Enregistre l'objet "mon_dico" dans le fichier dicopydata.PyData
     
    def dump_dico (nom_dico, mondico):
     
        dico_PyData= nom_dico + ".PyData"
     
        fichier_out = open(dico_PyData, "w")
     
        cPickle.dump(mondico, fichier_out)
     
        fichier_out.close()
     
     
     
    # Recharge "mon-dico"
     
    def load_dico (nom_dico, mondico):
     
        dico_pydata= nom_dico + ".PyData"
     
        fichier_in = open(dico_pydata, "r")
     
        dico = cPickle.load(fichier_in)
     
        fichier_in.close()
     
     
    ######################## corps du programme ################
     
    # ma requete me rapporte une clé et 5 éléments
     
    select_numacc = "SELECT clé, elt_1, elt_2, elt_3, elt_4, elt_5  FROM ma_table"
     
    numaccs = execute_requete (curseur,select_numacc)
     
     
     
    # Enregistre l'objet "dico_num_acc" dans le fichier dico_numaccs.PyData
     
    dump_dico ('dico_numaccs', dico_num_acc)
     
    # Recharge dico_numaccs depuis "dico_numaccs.pydata"
     
    load_dico ('dico_numaccs', dico_num_acc)
     
     
     
    # et je voudrais faire un dictionnaire basé sur la clé, contenant 
    # les 4 elements et la liste des elt_5 possibles pour cette clé et 
    # les quatre premiers elements
     
     
    for (clé, elt_1, elt_2, elt_3, elt_4, elt_5) in numaccs:
     
     	#   ???????????????????????????????
    	# mais comment passer elt_5 dans une liste?
    	#   ???????????????????????????????
     
        liste_elt_5.append(elt_5)
        dico_liste_numacc[clé]= (elt_1, elt2, elt_3, elt_4, liste_elt5)
     
     
     
        print dico_liste_numacc [clé]

    Si qqn voie une solution ou peut me dire si c'est impossible à faire je lui en serais infiniment reconnaissante...

    Merci d'avance

  2. #2
    Membre éclairé
    Avatar de GnuVince
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    679
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 679
    Points : 803
    Points
    803
    Par défaut
    Non testé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    rows = fonction_pour_obtenir_ton_data()
    result = list(rows[0][:-2])
    result += tuple(row[-1] for row in rows)

Discussions similaires

  1. Comment trier une liste dans un DBLoukupComboBox
    Par soror dans le forum Bases de données
    Réponses: 6
    Dernier message: 17/07/2007, 21h13
  2. Comment initialiser une liste dans la méthode reset()
    Par don'de dans le forum Struts 1
    Réponses: 10
    Dernier message: 19/03/2007, 22h17
  3. Réponses: 8
    Dernier message: 31/07/2006, 13h52
  4. COmment enregitrer une liste dans un fichier
    Par flo64 dans le forum Access
    Réponses: 13
    Dernier message: 14/06/2006, 11h07
  5. Comment modifier une cellule dans un JTable
    Par @yoyo dans le forum Composants
    Réponses: 10
    Dernier message: 22/03/2006, 17h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo