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
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    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 chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 572
    Points : 2 014
    Points
    2 014
    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
    12 689
    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 689
    Points : 30 983
    Points
    30 983
    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 «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]

  5. #5
    Invité
    Invité(e)
    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 éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 823
    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 823
    Points : 7 119
    Points
    7 119
    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