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 :

Dictionnaire multi variables


Sujet :

Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    mai 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : mai 2011
    Messages : 18
    Points : 12
    Points
    12
    Par défaut Dictionnaire multi variables
    Bonjour,

    Comment créer un dictionnaire (ou autres) qui me permettrait d'utiliser plusieurs niveaux. Je vais prendre un exemple.

    Tout d'abord "Nom Equipe" auquel est associé "3 joueurs" et pour finir pour chacun des joueurs pouvoir y indiquer "Age", "Technique", "Vitesse".

    Je vous met en pièce jointe un schéma plus explicite.

    Merci
    Images attachées Images attachées

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    juin 2008
    Messages
    18 410
    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 : 18 410
    Points : 31 821
    Points
    31 821
    Par défaut
    Salut,

    Une hiérarchie de dictionnaires est un dictionnaire où la valeur associée aux clefs sera un dictionnaire ou une liste de dictionnaires.

    Et puisque, c'est une hiérarchie, elle a autant de niveaux qu'on veut mais ici 2 suffisent. Le dictionnaire Equipes la clef Brest associée à une liste de joueurs. Autant de dictionnaires ayant pour clef nom, taille, poids,...

    Et si vous voulez plus de souplesse, remplacez vos dictionnaires par des classes.

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

  3. #3
    Membre éprouvé
    Inscrit en
    février 2003
    Messages
    1 227
    Détails du profil
    Informations forums :
    Inscription : février 2003
    Messages : 1 227
    Points : 1 271
    Points
    1 271
    Par défaut
    Bonjour,

    il existe bien des manières de voir la chose mais par exemple, je ferais ceci en guise de dictionnaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    teams = {}
    for team in ('Brest', 'Lens'):
        teams[team] = {}
    teams['Brest']['Alphonse'] = {'Age': 18, 'Technique': 5, 'Vitesse': 3}
    M'enfin bon. Ca, ce sont mes 20 ans de procédural en Perl qui refont surface. En Python, et en pensant objet, on peut faire mieux, même dans l'exemple que je donne

    Vous pourriez faire une classe pour les caractéristiques, composée de 3 attributs : age, technique, vitesse.

    Ou encore concevoir cette classe, non pas sur les caractéristiques, mais le joueur lui même. Composée de ces mêmes 3 attributs, plus d'autres si vous avez d'autres informations à consigner par joueur.

    Et encore d'autres manières de faire

  4. #4
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2006
    Messages
    9 417
    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 : 9 417
    Points : 25 878
    Points
    25 878
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par Arioch Voir le message
    En Python, et en pensant objet, on peut faire mieux, même dans l'exemple que je donne
    Non, pas besoin. Je suis 100% pour l'objet mais uniquement quand c'est nécessaire. Si par exemple on doit pouvoir manipuler un joueur (lui faire faire des actions) alors oui l'objet peut être utile mais si c'est juste pour le stocker et le récupérer alors ton dico suffit largement...
    En revanche on peut remplacer ta boucle par une "comprehension" => teams=dict((x, dict()) for x in ("Brest", "Lens"))
    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

  5. #5
    Membre averti Avatar de LeNarvalo
    Homme Profil pro
    Amateur Python
    Inscrit en
    février 2014
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Amateur Python
    Secteur : Santé

    Informations forums :
    Inscription : février 2014
    Messages : 254
    Points : 448
    Points
    448
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class Joueur():
    	def __init__(self, name, team, age, tec, vit):
    		self.nom = name
    		self.equipe = team
    		self.age = age
    		self.technique = tec
    		self.vitesse = vit
     
    Toto = Joueur("Toto","Brest",25,"défenseur",28)
     
    liste = [Toto]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>> for joueur in liste:
    	if joueur.equipe == "Brest":
    		print(joueur.nom, joueur.vitesse)
     
     
    Toto 28
    J'ai essayé autrement... Bof, bof...

  6. #6
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Développeur python
    Inscrit en
    juillet 2006
    Messages
    3 158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur python
    Secteur : Santé

    Informations forums :
    Inscription : juillet 2006
    Messages : 3 158
    Points : 5 930
    Points
    5 930
    Par défaut
    Perso, je créerai une classe Equipe, et j'y ajouterai une méthode de classe nommée par exemple creer_joueur avec les paramètres nom, age, techniques et vitesse. Cette méthode créerait un dictionnaire dont les clés sont Nom, Age, Techniques et Vitesse, et qu'on ajouterait à une liste (voir un set) des joueurs (attribut de la classe Equipe).
    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)

Discussions similaires

  1. [XL-2010] Problème VBA (création de multi variable)
    Par vanessa B dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/05/2012, 16h39
  2. Conversion d'un dictionnaire en variables
    Par dje_bibou dans le forum Calcul scientifique
    Réponses: 11
    Dernier message: 21/07/2011, 10h42
  3. Optimisation matricielle multi variable
    Par ocroquette dans le forum Mathématiques
    Réponses: 1
    Dernier message: 09/12/2010, 17h41
  4. Aide pour la fonction recherche et dictionnaire de variable
    Par Esmax dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 13/09/2010, 21h47
  5. Output multi variables avec Matlab builder EX
    Par jerryshen427 dans le forum MATLAB
    Réponses: 0
    Dernier message: 20/04/2009, 14h17

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