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 :

Incrémenter nom d'une liste ? encore et toujours !


Sujet :

Python

  1. #1
    Membre du Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Mars 2016
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2016
    Messages : 42
    Points : 53
    Points
    53
    Par défaut Incrémenter nom d'une liste ? encore et toujours !
    Bonsoir. J'ai passé l'après midi à chercher comment je pouvais assigner des valeurs à des noms de listes, mais je suis toujours sans solution

    Je trie des segments et certains sont le point de départ de parcours que je dois reconstituer. J'ai l'idée (peut-être mauvaise) de déclarer une liste pour chaque Vertex (ou segment) susceptible de mener à une solution.
    A chaque fois, le nombre de liste (ou point de départ) est variable (je peux le connaitre) et je voudrais donner à chaque liste une nom adapté.

    Comment faire pour indexer le nom d'une liste ? Dois-je passer par un dictionnaire ? Je dois pouvoir ajouter d'autres segments ordrés à la liste ouverte de façon à créer un parcours
    J'ai vu des idées de solutions reprenant locals()[name]=value mais je ne les ai pas bien comprise...
    Dois-je chercher du coté de eval ou exec ?

    C'est un sujet souvent traité mais à par les solutions de cellules adaptées à Matlab, je ne vois pas

    Une bonne âme pour me mettre sur la piste ?
    Merci d'avance

  2. #2
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 678
    Points
    13 678
    Billets dans le blog
    1
    Par défaut
    Si je comprends bien, au début de ton programme tu détermines que tu as 3 chemins possibles. Pour la suite, tu souhaiterai avoir donc 3 variables chemin_1, chemin_2 et chemin_3 ? C'est ça ?

    Si non, merci de montrer un exemple du code que tu souhaites obtenir.

    Si oui, il me semble que ce n'est pas possible. De plus, je ne vois pas du tout ça quoi ça te servirait car tu ne peux écrire de code utilisant des variables que tu ne connais pas. En revanche, si tu souhaites avoir un nom associé à chaque possibilité, un dictionnaire peut très bien faire l'affaire. Voici un exemple de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    nb_solutions = 3 # tu recuperes 3 comme tu veux
     
    chemins = dict()
    for i in range(0, nb_solutions):
        vertex = list() # tu mets tes segments dans la liste
        nom = "chemin_" + str(i)
        chemins[nom] = vertex
     
    print(chemins)
    print(chemins["chemin_1"])

  3. #3
    Membre du Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Mars 2016
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2016
    Messages : 42
    Points : 53
    Points
    53
    Par défaut
    Merci Bktero,

    Je ne sais pas comment faire pour poster du code sur le forum ! ... Hou !! La honte

    Je fais du traitement de fichier .DXF
    Lors d'un traitement, je sors un certain nombre de segments (droites/arc/ellipse...)
    En théorie, je ne sais pas avant combien je vais en avoir. Une fois ce premier traitement fait, je connais le nombre.
    J'appelle ces segments le début de mes chaînes.

    Je souhaite ensuite faire d'autres traitements des milliers de segments et les rattacher à la bonne chaîne (d'où l'idée de Liste)

    Je peux donc avoir 0, 4 ou 80 chaînes à constituer (et donc 80 listes).... D'où l'idée de pouvoir les "indexer" ?

    Non ? Je ne suis certainement pas le premier confronter à ce type de truc ? CAN'T ASSIGN TO OPERATOR
    Quelle est la méthode à suivre ? Peut-on ajouter des cellules à un tableau Matlab ?

    Merci sincèrement pour le temps que vous m'accordez.

  4. #4
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 678
    Points
    13 678
    Billets dans le blog
    1
    Par défaut
    Il y a un bouton en forme de # dans l'outil de rédaction de message. Il rajoute des balises spéciales pour mettre en forme du code : [CODE][/CODE] (j'ai utilisé une autre balise spéciale pour que les balises CODE s'affichent). Il te suffit de mettre ton code entre ces balises. Au final, tu as ce que j'ai dans mon message précédent.

    Si tu souhaites indexer des listes, il suffit d'avoir une liste de listes. Tu auras un code comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    nb_solutions = 3 # tu recuperes 3 comme tu veux
     
    chemins = list()
    for i in range(0, nb_solutions):
        vertex = list() # tu mets tes segments dans la liste
        chemins.append(vertex)
     
    print(chemins)
    print(chemins[0])

  5. #5
    Membre du Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Mars 2016
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2016
    Messages : 42
    Points : 53
    Points
    53
    Par défaut
    Bon ... Je suis entre pantois et médusé ...
    Merci Bktero pour cette solution triviale et qui devrait me sortie du puits dans lequel je me suis poussé.

    Je vais mettre ça en place cette nuit

  6. #6
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 784
    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 : 3 784
    Points : 7 043
    Points
    7 043
    Par défaut
    Citation Envoyé par Bktero Voir le message
    Si je comprends bien, au début de ton programme tu détermines que tu as 3 chemins possibles. Pour la suite, tu souhaiterai avoir donc 3 variables chemin_1, chemin_2 et chemin_3 ? C'est ça ?

    Si oui, il me semble que ce n'est pas possible.
    Ça l'est, mais c'est tout à fait inadéquate et surtout une mauvaise pratique... comme tu le dis si bien après avec

    Citation Envoyé par Bktero Voir le message
    De plus, je ne vois pas du tout ça quoi ça te servirait car tu ne peux écrire de code utilisant des variables que tu ne connais pas.
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  7. #7
    Membre du Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Mars 2016
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2016
    Messages : 42
    Points : 53
    Points
    53
    Par défaut
    J'ai bien compris que ce n'était pas la bonne pratique, mais je ne suis pas de la partie (vous l'aurez compris) et le reflex est de faire ainsi...

    Quel est donc, svp, la philosophie à adopter ?
    La solution que me donne Bktero ne me permet pas d'identifier les listes créées.
    J'ai un ordre de création, mais je trouverai plus simple de leur attribuer un nom lui même issu de mon process ... Non ?

    Peut-être qu'avec l'expérience j'abandonnerai cette façon de vouloir ordonner les résultats ?

  8. #8
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 678
    Points
    13 678
    Billets dans le blog
    1
    Par défaut
    @fred1599 : ça m'intéresse de voir comment on fait, ça peut servir

    @massaproduxy : tout dépend de ce que tu entends par identifier. Dans ma première solution, les clés du dictionnaire sont des chaines identifiant tes listes de segments. Dans la seconde solution, les indices de la liste de listes sont des entiers qui jouent le même rôle. Si tu veux faire que tes possibilités soient ordonnées, la solution 2 semble meilleure, puisque les entiers garantissent un ordre. Ca peut aussi marcher avec la solution 1 mais cela du format de tes clés et les comparaisons de chaines sont bien plus couteuses que les comparaisons d'entiers.

    On peut imaginer une 3e solution hybride :
    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
    nb_solutions = 3
     
    chemins = list()
    for i in range(0, nb_solutions):
        nom = "chemin_" + str(i)
        vertex = list()
     
        element = tuple([nom, vertex])
     
        chemins.append(element)
     
    print(chemins)
    print(chemins[0])
    print(chemins[0][0])
    print(chemins[0][1])
    Résultat :
    [['chemin_0', []], ['chemin_1', []], ['chemin_2', []]]
    ['chemin_0', []]
    chemin_0
    []
    Tu as désormais une liste de tuples. Un tuple contient un nom et une liste de segments.

  9. #9
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 241
    Points : 36 698
    Points
    36 698
    Par défaut
    Citation Envoyé par massaproduxy Voir le message
    Quel est donc, svp, la philosophie à adopter ?
    La solution que me donne Bktero ne me permet pas d'identifier les listes créées.
    J'ai un ordre de création, mais je trouverai plus simple de leur attribuer un nom lui même issu de mon process ... Non ?
    Un nom vous donne le moyen d'accéder au n-ième chemin N via la variable chemin_n.
    Avec une liste de listes, ce sera chemins[n].

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  10. #10
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 784
    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 : 3 784
    Points : 7 043
    Points
    7 043
    Par défaut
    Citation Envoyé par Bktero Voir le message
    @fred1599 : ça m'intéresse de voir comment on fait, ça peut servir
    Bof, mais si tu insistes...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    vars_names = ('foo', 'bar', 'baz')
     
    for ind, name in enumerate(vars_names):
        vars()[name] = ind # équivalent à variable = valeur à partir d'une chaîne de caractères
     
    print(foo) # foo est une variable, comme bar et baz ci-dessous, ici foo vaut 0
    print(bar) # bar vaut 1
    print(baz) # ...
    Mais comme déjà dis, mieux vaut expliquer un problème et avoir une solution viable et algorithmique, que de partir vers une solution où l'on utilise des mauvaises pratiques et non maintenable.
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  11. #11
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 678
    Points
    13 678
    Billets dans le blog
    1
    Par défaut
    Oh lord!

    Je m'étonne quand même d'une ligne de la documentation officielle de var() :
    Citation Envoyé par https://docs.python.org/3/library/functions.html#vars
    Without an argument, vars() acts like locals(). Note, the locals dictionary is only useful for reads since updates to the locals dictionary are ignored.
    Mon interprétation est que le bon fonctionnement de ton code n'est pas garanti (même s'il s'avère que ça fonctionne sur mon Python 3.5).


    EDIT : c'est effectivement non garanti et il ne faudrait pas se reposer sur un tel hack pour un programme solide https://stackoverflow.com/questions/...saying-its-not

  12. #12
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 241
    Points : 36 698
    Points
    36 698
    Par défaut
    Citation Envoyé par Bktero Voir le message
    Je m'étonne quand même d'une ligne de la documentation officielle de var() :

    Mon interprétation est que le bon fonctionnement de ton code n'est pas garanti (même s'il s'avère que ça fonctionne sur mon Python 3.5).
    C'est une question de scope.

    Au niveau du module (comme dans le code proposé) vars() et locals() équivalent à globals() qui n'a pas ces restrictions. Les limitations arrivent lorsqu'on est dans une fonction, car là vars() et locals() retournent le dictionnaire des variables locales et le comportement n'est pas garanti.... mais on peut quand même mettre à jour globals() y compris dans une fonction.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  13. #13
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 784
    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 : 3 784
    Points : 7 043
    Points
    7 043
    Par défaut
    Citation Envoyé par Bktero Voir le message
    Oh lord!

    Je m'étonne quand même d'une ligne de la documentation officielle de var() :

    Mon interprétation est que le bon fonctionnement de ton code n'est pas garanti (même s'il s'avère que ça fonctionne sur mon Python 3.5).
    Même s'il était garanti, d'autres contraintes entrent en jeu... Le fait que c'est contre intuitif, crade et anti-algorithmique suffit à ne pas l'utiliser.

    Ce qui est important c'est surtout cette phrase dans la documentation de locals

    The contents of this dictionary should not be modified; changes may not affect the values of local and free variables used by the interpreter
    Ça met fin à toute discussion ! Ça n'est et ne sera jamais une bonne manière... dans le sens où si besoin est, utiliser le dictionnaire python.

    Il faut prioriser les espaces de nommage, voir le zen de python qui dit ceci

    Namespaces are one honking great idea -- let's do more of those!
    Mieux vaut donc faire quelque chose de plus propre comme par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    class Variables:
        def __init__(self, my_dict):
            self.__dict__.update(my_dict)
     
    vars_names = ('foo', 'bar', 'baz')
    d = dict()
     
    for ind, name in enumerate(vars_names):
        d[name] = ind
     
    var = Variables(d)
     
    print(var.foo, var.bar, var.baz)
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  14. #14
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 241
    Points : 36 698
    Points
    36 698
    Par défaut
    Citation Envoyé par fred1599 Voir le message
    Ça met fin à toute discussion ! Ça n'est et ne sera jamais une bonne manière... dans le sens où si besoin est, utiliser le dictionnaire python.
    Tu aurais utilisé globals() plutôt que vars(), cette discussion dans la discussion n'aurait pas eu lieu d'être.

    Citation Envoyé par fred1599 Voir le message
    Mieux vaut donc faire quelque chose de plus propre comme par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    class Variables:
        def __init__(self, my_dict):
            self.__dict__.update(my_dict)
     
    vars_names = ('foo', 'bar', 'baz')
    d = dict()
     
    for ind, name in enumerate(vars_names):
        d[name] = ind
     
    var = Variables(d)
     
    print(var.foo, var.bar, var.baz)
    Pourquoi montrer une solution et ouvrir la porte à de nouveaux problèmes hors sujets avec la class Variables?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  15. #15
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 784
    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 : 3 784
    Points : 7 043
    Points
    7 043
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Tu aurais utilisé globals() plutôt que vars(), cette discussion dans la discussion n'aurait pas eu lieu d'être.
    C'est une solution qui n'est pas plus propre...

    Citation Envoyé par wiztricks Voir le message
    Pourquoi montrer une solution et ouvrir la porte à de nouveaux problèmes hors sujets avec la class Variables?
    Ce n'est pas lié au PO effectivement, mais à la question de Bktero quand à choisir ce type de solution où il dit je cite

    Citation Envoyé par Bktero
    ça m'intéresse de voir comment on fait, ça peut servir
    Certes, ça ne sert pas, mais il voit comment on peut faire.
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  16. #16
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 631
    Points : 30 865
    Points
    30 865
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par massaproduxy Voir le message
    Quel est donc, svp, la philosophie à adopter ?
    Bonjour
    La philosophie de base, c'est que si on doit gérer n "trucs" alors on passe par un tableau de trucs. En python, un tableau se nomme une "liste" (ou éventuellement "tuple" si tu n'as pas besoin de modifier son contenu).
    Exemple de liste de trucs: tabTruc=[truc(), truc(), truc()].
    C'est en effet plus simple de traiter les trucs en les itérant...
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    tabTruc=[truc(), truc(), truc()]
    for t in tabTruc: print t
    for i in xrange(len(tabTruc)): print i, tabTruc[i]
    for (i, t) in enumerate(tabTruc): print i, t
    ...que d'écrire
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    truc1=truc()
    truc2=truc()
    truc3=truc()
    print "truc1: ", truc1
    print "truc2: ", truc2
    print "truc3: ", truc3
    (même en utilisant l'astuce de fred1599 ça reste galère).

    Citation Envoyé par massaproduxy Voir le message
    J'ai un ordre de création, mais je trouverai plus simple de leur attribuer un nom lui même issu de mon process ... Non ?
    Plus simple ça dépend. Chaque outil a des avantages et des inconvénients. A toi de les connaitre pour choisir celui qui se prêtera le mieux à ton besoin. Mais pour moi utiliser l'ordre de création pour ordonner les résultats n'est pas rédhibitoire (les listes et les tuples te garantissent cet ordre donc si tu as une garantie, alors tu as le droit de l'utiliser).

    Sinon tu peux remplacer une liste par un dictionnaire. La différence c'est que là l'accès aux éléments se fait ensuite par clefs et non par indices.
    Exemple de dictionnaire de trucs: dicTruc={"prems" : truc(), "second" : truc(), "third" : truc()} puis tu récupères l'élément "k" en demandant dicTruc[k] (k à choisir entre "prems", "second" et "third").
    Tu peux cependant toujours itérer sur les dictionnaires. Tu peux itérer sur la liste des clefs du dictionnaire en demandant dictTruc.viewkeys(), la liste des valeurs du dictionnaire en demandant dictTruc.viewvalues(), et la liste des couples clefs+valeurs en demandant dictTruc.viewitems(). Mais l'ordre de récupération n'est plus du tout garanti et donc rien ne peut te dire si tu auras "prems" avant ou après "second" (ni même si l'ordre à un instant "t1" restera le même à un autre instant "t2").

    Toutefois en utilisant les collections, tu peux alors avoir des dictionnaires avec ordre garanti. Je ne te dis pas que je m'en suis jamais servi mais chaque fois que je m'en suis servi, c'était par fainéantise. Je trouvais plus agréable d'avoir un élément accessible par un nom tout en sachant que l'élément [n-1] serait récupéré avant l'élément [n] (c'était pour une liste de colonnes à afficher dans une grille) mais j'aurais pu aussi utiliser un tuple et accéder à elem[n] plutôt que elem[k] (dans ce cas précis l'ordre était primordial et l'accès par clef plutôt que par indice était plaisant mais restait facultatif).
    Exemple de dictionnaire ordonnés de trucs: dictOrderTruc=collections.OrderedDict((("prems", truc()), ("second", truc()), ("third", truc()))) (le reste sans changement par rapport aux dicos de base).

    Citation Envoyé par massaproduxy Voir le message
    Peut-être qu'avec l'expérience j'abandonnerai cette façon de vouloir ordonner les résultats ?
    Cela ne dépend pas de toi mais de ton besoin et ça dépendra de chaque projet. C'est d'ailleurs pour ça qu'on a autant d'outils (trop peut-être ?)...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  17. #17
    Membre du Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Mars 2016
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2016
    Messages : 42
    Points : 53
    Points
    53
    Par défaut Merci
    Je ne pensais pas que ma question serait traitée par autant de visions et solutions: Merci à vous.
    Je vais tout relire pour bien comprendre, mais soyez certain que j'ai globalement compris la leçon.

Discussions similaires

  1. Passage en paramétre dans une url du nom d'une liste
    Par lesanglier dans le forum SharePoint
    Réponses: 1
    Dernier message: 16/11/2009, 15h59
  2. Ajouter des noms dans une liste déroulante
    Par Unreal Time dans le forum IHM
    Réponses: 1
    Dernier message: 13/11/2009, 16h02
  3. Aide [C++] Logiciel traitant le nom d'une liste de fichiers
    Par Sound4Lyon dans le forum Mon programme
    Réponses: 0
    Dernier message: 12/11/2008, 00h43
  4. [Excel] Supprimer le nom d'une liste
    Par lucarno dans le forum Excel
    Réponses: 4
    Dernier message: 12/03/2008, 11h05
  5. nom d'une liste à partir de valeurs de variables
    Par pedro99 dans le forum Général Python
    Réponses: 5
    Dernier message: 27/06/2007, 18h54

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