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 :

tableau sérialisés en python


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Expert technique
    Inscrit en
    Septembre 2003
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert technique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 328
    Par défaut tableau sérialisés en python
    Bonjour, j'essaie de reproduire une table de hash php en python, mais je n'y arrive pas. Il faut dire que je viens de commencer à apprendre python, et actuellement, les tables de hash me manquent même si l'utilisation des dictionnaires s'en approche

    Voilà ce que je veux faire concrètement. Je récupère une liste de données d'un base oracle. Cette liste se présente sous la forme
    1 text nombre
    1 text nombre
    1 text nombre
    1 text nombre
    1 text nombre
    2 text nombre
    2 text nombre
    2 text nombre
    2 text nombre
    2 text nombre
    ...
    ...

    Le but est de créer un élément avec un indice unique dans le quel j'ajouterai toutes les données du même indice:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    1 (
       text nombre
       text nombre
       text nombre
    )
    2 (
       text nombre
       text nombre
       text nombre
    )
    En php:
    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
    Array
    (
        [1] => Array
            (
                [0] => text
                [1] => nombre
                [2] => text
                [3] => nombre
            )
        [2] => Array
            (
                [0] => text
                [1] => nombre
                [2] => text
                [3] => nombre
            )
        [3] => Array
            (
                [0] => text
                [1] => nombre
                [2] => text
                [3] => nombre
            )
    )
    Avec les dictionnaires, j'ai trouvé comment créer une structure de ce type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    [0] (
       'text'
       nombre
    )
    [1] (
       'text'
       nombre
    )
    [2] (
       'text'
       nombre
    )
    Comment puis-je arriver à créer en python une structure similaire à celle de php ?

    J'espère que vous pourrez m'éclairer.

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Wow, je suis vraiment pas sûr d'avoir compris, mais on va essayer.

    Tu peux créer un dictionnaire dont la clé sera tes indices et ta valeur sera une liste des données entrées.

    Ai-je compris?

  3. #3
    Membre éclairé
    Profil pro
    Expert technique
    Inscrit en
    Septembre 2003
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert technique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 328
    Par défaut
    euuhhh, oui, oui, mais bien sûr

    Mais comment on fait en python lol.

    pour un dico:

    mondico[mondice] = {text1: nombre}

    si j'ajoute un élément:
    mondico[mondice] = {text2: nombre2}

    le contenu est remplacé par les dernière valeurs ...

  4. #4
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Non un dico peut être construit de cette manière

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dico = {1:[nombre, nombre2, nombre3, nombre4], 2:[...]}
    # dico[1] te renverra ta liste de nombre

  5. #5
    Membre éclairé
    Profil pro
    Expert technique
    Inscrit en
    Septembre 2003
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert technique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 328
    Par défaut
    oui, mais comme je différencie tout ça ?

    en fait la structure est la suivante avec les vraies valeurs:

    [pour l'indice 1]:
    annee2005 -> nombre
    annee2006 -> nombre
    annee2007 -> nombre
    annee2008 -> nombre

    Donc j'ai un seul indice qui contient 5 années (dans cet exemple), et à chaque année correspond un nombre.

    Est-ce que cette syntaxe est bonne ?

    list = {}
    list = {1:[annee2005, 200, annee2006, 300]}
    print list[1]

  6. #6
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dico = {1:{annee2005:nombre1, annee2006:nombre2,...}, 2:{...}}
    ?

    Sinon avec une simple liste de tuples, tu dois t'en sortir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >>> liste = [(1, 2005, 12), (1, 2006, 15), (2, 2007, 13)]
    >>> for i in liste:
    ...     ind, annee, nombre = i
    ...     if ind == 1 and annee == 2005:
    ...         print(nombre)
    ... 
    12
    Et si tu veux que tes tuples soient nommés, il y a le module collections et sa méthode namedtuple

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 25
    Par défaut
    bonjour, on peut utiliser defaultdic



    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
     
    from  collections import defaultdict
     
    dico = defaultdict(list)
     
    f = open("mon_fichier.txt","r") 
     
    for i in f:
        id,annee,n=i.split()
        dico[annee].append((id,n))
    f.close()    
     
    for k,v in dico.items():
        print k
        for ns in v:
            print "%s - %s" % (ns)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. manipulation de tableau (like python)
    Par geekrider dans le forum Ruby
    Réponses: 1
    Dernier message: 10/09/2009, 16h28
  2. Traiter Un Tableau sous Python
    Par anass_59 dans le forum Bibliothèques tierces
    Réponses: 5
    Dernier message: 18/06/2009, 15h35
  3. import des donnees python vers tableau
    Par tsicc dans le forum Réseau/Web
    Réponses: 5
    Dernier message: 02/04/2008, 10h10
  4. Réponses: 4
    Dernier message: 25/07/2007, 10h29
  5. swig python tableau
    Par paulo2007 dans le forum Interfaçage autre langage
    Réponses: 1
    Dernier message: 23/04/2007, 09h18

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