Forum Programmation.python dictionnaire ou liste ?

Posté par  .
Étiquettes : aucune
0
9
juin
2010
Bonjour
j'ai un probleme de structure de mes donnees, il sagit d'une matrice de donnes avec deux entrees, pour l'instant cette matrice est codee par un dictionnaire dont l'appelle se fait par un tuple:
Par exemple : ma_matrice[(cle1,cle2)]
cela est est pratique car les cle sont des string...
cependant je ne sais pas si cette strcuture est optimale
est ce que passer par un tel dictionanire demande plus d'espace qu'une simple matrice ?
est ce que l'apel par dictionnaire prend plus de temps que si j'avais utilise une liste avec des simples indices ?

merci d'avance
  • # Tout dépend de la taille...

    Posté par  (site web personnel) . Évalué à 1.

    Hello,

    Je dois avouer que j'ai un peu du mal a cerner ce que tu appels un dictionnaire en terme d'implémentation : un fichier dans un format spécifique que tu interroge par API ? Bon on va dire que je connais pas les dico alors c'est de la réponse newbee einh.....

    Pour l'espace ca dépend de l'implémentation de ton machin non ?
    Ton dico effectue t'il une réservation ou pas ? il a un index ou pas ?
    ex : un varchar (25) qui n'en contient que12 char prendra il 12 octet ou est ce qu'il y aura 25 octet de pris, ou 17 car 12 + index ?

    Sinon pour répondre à ta question "indice vs string" dans un array en perf je dirais que l'indice est plus rapide mais l'écart est fonction de la cardinalité de ce que tu manipules....
    - Autant a 100 éléments la différence ne sera quasiment pas visible entre indice / string...
    - Autant a 5 000 éléments la résolution par indices sera plus rapide...

    Sachant que si tu as une base de donnée en indexant la clé string tu te retrouves avec des perf quasi équivalente...
    ( Vive le hachage !!! moi ca m'impressionne tous les jours sur mes clés strings que j'ai pas le choix de faire autrement ! )

    Fuse : j'en Use et Abuse !

  • # ni list ni dico !

    Posté par  . Évalué à 1.

    les dictionnaires ne sont pas vraiment adaptés pour faire des matrices.

    Du coup, entre dictionnaires et listes, mieux vaut utiliser des listes.

    Sinon, sans trop trop chercher, je suis tombé sur ça [1], qui conseille l'utilisation de numpy [2].

    [1] http://ubuntuforums.org/showthread.php?t=127426
    [2] http://numpy.scipy.org/

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.