[Perl] Structure de données

Dami Laurent (PJ) laurent.dami at justice.ge.ch
Ven 10 Mai 09:34:01 CEST 2024


Salut,

Tu pourrais transformer chaque paire en string, par exemple sous forme de représentation JSON ou YAML ou Perl Dump ou simplement "$val1/$val2".
Avec ça tu obtiens des scalaires que tu peux utiliser comme clés de hash, ce qui permet d'associer des fréquences ou autres valeurs statistiques.
Ensuite lors des traitements il suffit de décoder les strings pour retrouver les valeurs de chaque paire.

Laurent D.

-----Message d'origine-----
De : perl-bounces at mongueurs.net <perl-bounces at mongueurs.net> De la part de Patrice Karatchentzeff
Envoyé : vendredi 10 mai 2024 09:12
À : Perl <perl at mongueurs.net>
Objet : [Perl] Structure de données

PRUDENCE. Ce message provient d'un expéditeur externe à l'Etat. Ne cliquez sur les liens ou n'ouvrez les pièces jointes que si vous faites entière confiance à cet expéditeur.



Salut,

J'ai une question... qui dépasse un peu le cadre directement de la
programmation en Perl. C'est la structure de données de mes
programmes.

Aujourd'hui, j'ai un truc qui fonctionne, mais qui ne me plait pas,
car je suis obligé de dupliquer mes données dans mon programme et je
voudrais les centraliser, de façon in fine à pouvoir les passer
éventuellement en paramètres, sous une forme ou une autre.

Mon script prend des données sous forme de paires. J'ai donc une liste
de paires et je traite ensuite en interne chaque paire dans une
moulinette. J'ai besoin de faire des stats à l'issue du traitement de
la paire, donc de rattacher des valeurs de statistique à chaque paire.

J'ai une autre contrainte. La traitement n'est pas égal pour chaque
paire : il est pondéré. Cela veut dire que certaines paires doivent
être moulinées plus souvent. Pour le moment, je m'en sors (et c'est là
qu'est l'os) en écrivant une liste de ces paires en dupliquant
certaines paires plusieurs fois. Puis en tirant au sort un numéro dans
cette liste de paires. Par exemple, si la paire A est dupliquée 3 fois
dans une liste de 10 paires, elle a statistiquement 30% de chance
d'être choisie contre 10% pour les autres. Cela fonctionne bien.

Mon problème est comment décrire une fois pour toutes mes données (et
éventuellement pouvoir les externaliser de mon script) avec ces
conditions ? Une liste de paires pondérées.

Pour le moment, j'ai une table de hash avec pour chaque paire une
clé/valeur, que je complète avec les données statistiques. Je suis
obligé d'initialiser ma table pour le premier tour de mon script et
ensuite de dupliquer les clés/valeurs pour créer une liste que je vais
interroger aléatoirement. Un gag de plus est que les clés ne sont pas
uniques, donc j'ai d'entrée une table de tables de hash....

Est-ce que vous auriez une idée d'une approche plus globale qui me
permettrait d'éviter la duplication ? J'ai essayé de dupliquer en
interne à partir du hash, mais je me retrouve avec des référence de
hash qui sont incompatibles avec le pragma use strict !

J'espère avoir été clair... N'hésitez pas à me demander d'éclaircir !

Merci d'avance,

PK

--
      |\      _,,,---,,_           Patrice KARATCHENTZEFF
ZZZzz /,`.-'`'    -.  ;-;;,_   mailto:patrice.karatchentzeff at gmail.com
     |,4-  ) )-,_. ,\ (  `'-'
    '---''(_/--'  `-'\_)
_______________________________________________
Perl mailing list
Perl at mongueurs.net
http://listes.mongueurs.net/mailman/listinfo/perl
Attention, les archives sont publiques


Plus d'informations sur la liste de diffusion Perl