Auteur Sujet: [TOPICAZAT] Python et structure de donnees complexes  (Lu 5486 fois)

Hors ligne Caabale

  • Jouer avec des puces
  • Hero Member
  • Messages: 8743
  • Sexe: Homme
    • Voir le profil
Zat, question barbusante, le python, ca gere bien les structures complexes ? Genre les tableaux de hash dont certaines valeurs sont des tableaux de scalaires. Parce qu'en perl, c'est un peu la cata et pour pas te planter, vaut mieux passer par des pointeurs, et les trucs du genre :
${${$titi[5]}{toto}}[3]

C'est pas ce qu'il y a plus de simple a maintenir [:matleflou]
TurnovA

Hors ligne pastigo

  • Hero Member
  • Messages: 25363
    • Voir le profil
[TOPICAZAT] Python et structure de donnees complexes
« Réponse #1 le: 19/05/09 18:24 »
${${$pipi[5]}{caca}}[3]


de rien.
Un pigeon, c'est plus con qu'un dauphin, d'accord... mais Aa vole / oui / condylure misAreux

Hors ligne mout

  • videur (de verres)
  • Hero Member
  • Messages: 36253
  • Sexe: Homme
    • Voir le profil
    • bricomout
[TOPICAZAT] Python et structure de donnees complexes
« Réponse #2 le: 19/05/09 18:29 »
sinon j'en connais un rayon en tablettes de hash moi :)
welcome to the future / la lose / bricomout

Hors ligne John Henry

  • Hero Member
  • Messages: 1930
    • Voir le profil
[TOPICAZAT] Python et structure de donnees complexes
« Réponse #3 le: 19/05/09 19:15 »
Ton truc st'un tableau composé d'objet pouvant etre different ? Ou juste un tableau à plusieurs dimensions ?

Hors ligne mout

  • videur (de verres)
  • Hero Member
  • Messages: 36253
  • Sexe: Homme
    • Voir le profil
    • bricomout
[TOPICAZAT] Python et structure de donnees complexes
« Réponse #4 le: 19/05/09 20:12 »
ben ça depend hein, tu veux 20€ jte coupe 20 €..
welcome to the future / la lose / bricomout

Hors ligne Bitman

  • Master of Condylures
  • Administrator
  • Hero Member
  • *****
  • Messages: 85849
  • Sexe: Homme
  • Show me Uranus
    • Voir le profil
    • anal teen exploited
[TOPICAZAT] Python et structure de donnees complexes
« Réponse #5 le: 19/05/09 20:19 »
hey les enfants, c'est pas bla² ici merci ;)
Hard times create strong men. Strong men create good times. Good times create weak men. And, weak men create hard times.

Hors ligne Caabale

  • Jouer avec des puces
  • Hero Member
  • Messages: 8743
  • Sexe: Homme
    • Voir le profil
[TOPICAZAT] Python et structure de donnees complexes
« Réponse #6 le: 19/05/09 21:53 »
Ton truc st'un tableau composé d'objet pouvant etre different ? Ou juste un tableau à plusieurs dimensions ?


Mmh, c'est un tableau compose des memes classes d'objet, mais un membre de cette classe est un tableau.

En perl ca revient a dire :
@titi est un tableau de pointeurs de hash
donc
$titi{5} est un pointeur vers un hash (enfin, une hash table, en fait, tableau associatif en français)
donc
%{$titi{5}} est un hash
donc
${$titi[5]}}{toto} est la valeur du membre "toto" dudit hash (en l'occurence, un pointeur vers un tableau)
donc
@{${$titi[5]}}{toto}} est un tableau
donc
${${$titi[5]}}{toto}}[3] est un element du tableau (un scalaire, mais à ce point là, on s'en fout)

Comme tu peux le voir, c'est absolument imbitable [:matleflou] Ce genre de choses, ça se fait mieux en python ?

En fait, le truc, c'est que perl gère très mal l'approche objet, donc je suppose que si python gère ça correctement, ça sera déjà mieux...
TurnovA

Hors ligne Caabale

  • Jouer avec des puces
  • Hero Member
  • Messages: 8743
  • Sexe: Homme
    • Voir le profil
[TOPICAZAT] Python et structure de donnees complexes
« Réponse #7 le: 19/05/09 21:55 »
On pourrait théoriquement abréger tout le bordel en éludant les { }de désambiguation :
$$$titi[5]{toto}[3], et qq part, c'est plus clair, mais j'ai déjà eu des emmerdes avec cette notation, parce qu'ambigüe...
TurnovA

Hors ligne John Henry

  • Hero Member
  • Messages: 1930
    • Voir le profil
[TOPICAZAT] Python et structure de donnees complexes
« Réponse #8 le: 19/05/09 22:59 »
Python est plus puissant que Java niveau objet (heritage multiple par exemple), donc au niveau du C++ :D

Et aussi il y a des trucs sympa au niveau des acces aux methodes, donc il y a moyen d'avoir un syntaxe bien plus belle que celle de Java sur ce point !

(genre les .getX() .setX() peuvent etre abrégé par un .x qui appel tout seul comme un grand la bonne methode §§)

Hors ligne Shor-T

  • Hero Member
  • Messages: 6014
    • Voir le profil
[TOPICAZAT] Python et structure de donnees complexes
« Réponse #9 le: 19/05/09 22:59 »
Et tu te tires pas les cheveux avec des merdes pareilles ? [:dawa']
-= Je crois en kakaaproot  =- -= Music Challenge, un bon magasin de musique en ligne =- / Mistral gagnant

Hors ligne Caabale

  • Jouer avec des puces
  • Hero Member
  • Messages: 8743
  • Sexe: Homme
    • Voir le profil
[TOPICAZAT] Python et structure de donnees complexes
« Réponse #10 le: 19/05/09 23:32 »
Python est plus puissant que Java niveau objet (heritage multiple par exemple), donc au niveau du C++ :D

Et aussi il y a des trucs sympa au niveau des acces aux methodes, donc il y a moyen d'avoir un syntaxe bien plus belle que celle de Java sur ce point !

(genre les .getX() .setX() peuvent etre abrégé par un .x qui appel tout seul comme un grand la bonne methode §§)


Ok, mais le genre de stuctures à la con comme décrit plus haut, ça se fait plus simplement ou pas ?

Et tu te tires pas les cheveux avec des merdes pareilles ? [:dawa']


Si :D Mais là, je vois relativement mal comment faire plus simple. Pour la structure là, cétait en fait un script qui analysaient une série de scripts sh qui lancent des outils qui génèrent des fichiers, mais avec des dépendances (genre le 10 ème script attends un fichier généré par le premier).

Donc je mets ces scripts dans un tableau ordonné (dans l'ordre de lancement), et à chacun, je leur associe une liste (un tableau donc) des scripts dont il dépendent. Sachant que j'ai aussi besoin de stocker d'autres infos sur ces scripts.

Le but étant de paralléliser le lancement de ces scripts, qui aujourd'hui s'exécutent les uns après les autres...
TurnovA

Hors ligne John Henry

  • Hero Member
  • Messages: 1930
    • Voir le profil
[TOPICAZAT] Python et structure de donnees complexes
« Réponse #11 le: 19/05/09 23:34 »
man xargs ?

Hors ligne Caabale

  • Jouer avec des puces
  • Hero Member
  • Messages: 8743
  • Sexe: Homme
    • Voir le profil
[TOPICAZAT] Python et structure de donnees complexes
« Réponse #12 le: 19/05/09 23:40 »
man xargs ?


Qu'es-ce que tu racontes ? :heink:
TurnovA

Hors ligne John Henry

  • Hero Member
  • Messages: 1930
    • Voir le profil

Hors ligne Caabale

  • Jouer avec des puces
  • Hero Member
  • Messages: 8743
  • Sexe: Homme
    • Voir le profil
[TOPICAZAT] Python et structure de donnees complexes
« Réponse #14 le: 19/05/09 23:51 »
Nan mais je sais ce que c'est xargs, hein, c'est juste que c'est complètement hors-sujet...
TurnovA

Hors ligne John Henry

  • Hero Member
  • Messages: 1930
    • Voir le profil
[TOPICAZAT] Python et structure de donnees complexes
« Réponse #15 le: 19/05/09 23:53 »
No no ! xarg peut servir à faire de la parallélisation de script §§

Hors ligne Caabale

  • Jouer avec des puces
  • Hero Member
  • Messages: 8743
  • Sexe: Homme
    • Voir le profil
[TOPICAZAT] Python et structure de donnees complexes
« Réponse #16 le: 20/05/09 00:01 »
Non, mais atta, je t'explique:
Les scripts d'analyse en question sont générés par un flow, qui générent ces scripts (qui lancent des outils dans différentes conditions), et qui sont inter dépendants (certains scripts génèrent des fichiers utilisés par d'autres).

Ces scripts sont lancés en série par un "run file" qui est un bête script sh qui lance ces scripts.

C'est une grosse usine à gaz, c'est trop compliqué, mais c'est comme a, j'ai pas le choix.

Le but de mon truc, c'est de modifier ces run files pour que les scripts soient lancés sur lsf, avec une option qui dit quand besoin est à chaque script : attend que celui-là soit fini avant de te lancer.

Pour faire ça, je fais un perl qui lit ces scripts pour voir quelles sont leurs dépendances, ce qui me permet de modifier le run file de façon adéquate.

xarg ne m'est d'aucune utilité là-dedans et en plus, c'est pas la question.

Bon, je vais jeter un coup d'oeil au man de python, d'après ce que tu m'a dit, doit y avoir un moyen de faire quelque chose de plus lisible.
TurnovA

Hors ligne Shor-T

  • Hero Member
  • Messages: 6014
    • Voir le profil
[TOPICAZAT] Python et structure de donnees complexes
« Réponse #17 le: 20/05/09 20:15 »


Ok, mais le genre de stuctures à la con comme décrit plus haut, ça se fait plus simplement ou pas ?



Si :D Mais là, je vois relativement mal comment faire plus simple. Pour la structure là, cétait en fait un script qui analysaient une série de scripts sh qui lancent des outils qui génèrent des fichiers, mais avec des dépendances (genre le 10 ème script attends un fichier généré par le premier).

Donc je mets ces scripts dans un tableau ordonné (dans l'ordre de lancement), et à chacun, je leur associe une liste (un tableau donc) des scripts dont il dépendent. Sachant que j'ai aussi besoin de stocker d'autres infos sur ces scripts.

Le but étant de paralléliser le lancement de ces scripts, qui aujourd'hui s'exécutent les uns après les autres...


[:grunt]
-= Je crois en kakaaproot  =- -= Music Challenge, un bon magasin de musique en ligne =- / Mistral gagnant

Hors ligne Caabale

  • Jouer avec des puces
  • Hero Member
  • Messages: 8743
  • Sexe: Homme
    • Voir le profil
[TOPICAZAT] Python et structure de donnees complexes
« Réponse #18 le: 20/05/09 20:23 »
Ca n'est pas le script perl le plus complexe que j'aurais fait :o Et si les scripts que j'analyse étaient pas aussi mal foutus, il fonctionnerait depuis qqs temps. Mais bon, garbage in, garbage out, je suis pas alchimiste, je transformerai pas la fiente en or...
TurnovA