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 :

novice: remplir un dictionnaire avec une boucle for [Python 3.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    domaine automobile
    Inscrit en
    Août 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : domaine automobile
    Secteur : Transports

    Informations forums :
    Inscription : Août 2008
    Messages : 22
    Par défaut novice: remplir un dictionnaire avec une boucle for
    bonjour

    je souhaite remplir un dictionnaire avec une boucle for, comment fait-on pour entrer une autant de clé et de valeur à chaque iteration ??

    merci d'avance

  2. #2
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    salut,

    tu pourrais être un peu plus précis, montrer un exemple concret ?

  3. #3
    Membre averti
    Homme Profil pro
    domaine automobile
    Inscrit en
    Août 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : domaine automobile
    Secteur : Transports

    Informations forums :
    Inscription : Août 2008
    Messages : 22
    Par défaut
    Le programme doit d'abord lire un entier strictement positif correspondant au nombre de maisons. Ensuite, pour chaque maison, il doit lire la position horizontale (l'abscisse, le "x") et sa position verticale (l'ordonnée, le "y") de cette maison. Toutes les abscisses et ordonnées sont des entiers compris entre zéro et 1 million.

    Le programme doit alors afficher le périmètre de la plus petite clôture rectangulaire englobant toutes les maisons. Ce rectangle doit avoir ses côtés parallèles aux axes du repère.






    Citation Envoyé par BufferBob Voir le message
    salut,

    tu pourrais être un peu plus précis, montrer un exemple concret ?

  4. #4
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    ok, de ce que je comprends t'as simplement besoin de stocker les coordonnées de tes maisons finalement (et faire des calculs dessus), une simple liste suffit, une liste de tuples par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> maisons = [ (1,1), (3,5), (8,150), (18000,30) ]
    >>> maisons.append((250,7))
    >>> maisons
    [(1, 1), (3, 5), (8, 150), (18000, 30), (250, 7)]
    donc à chaque tour de boucle for il suffit de jouer du liste.append(tuple de coordonnées)

    j'espère que ça répond à ta question.

  5. #5
    Membre averti
    Homme Profil pro
    domaine automobile
    Inscrit en
    Août 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : domaine automobile
    Secteur : Transports

    Informations forums :
    Inscription : Août 2008
    Messages : 22
    Par défaut
    je suis bloquer, je veux renseigner un tuple dans une boucle for de maniere a entrer la clef et comme abssiss et la valeur comme ordonner
    mais j ai des message d'erreur je doit certainement pas savoir le coder correctement

    [CODE]Nbmaison=int(input())
    maison=[]
    for loop in rang (Nbmaison):
    maison.append.keys=int(input()) #la je bloque #
    maison.append.values=int(input()) #la je bloque#

    extraire la valeur maxi et mini des clef
    extraire la valeur maxi et mini des valeurs
    print (somme des quatres valeur) [CODE]

    Citation Envoyé par BufferBob Voir le message
    ok, de ce que je comprends t'as simplement besoin de stocker les coordonnées de tes maisons finalement (et faire des calculs dessus), une simple liste suffit, une liste de tuples par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> maisons = [ (1,1), (3,5), (8,150), (18000,30) ]
    >>> maisons.append((250,7))
    >>> maisons
    [(1, 1), (3, 5), (8, 150), (18000, 30), (250, 7)]
    donc à chaque tour de boucle for il suffit de jouer du liste.append(tuple de coordonnées)

    j'espère que ça répond à ta question.

  6. #6
    Membre éprouvé
    Homme Profil pro
    employé
    Inscrit en
    Mars 2015
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : employé

    Informations forums :
    Inscription : Mars 2015
    Messages : 75
    Par défaut
    Salut,

    Ton Code doit se finir par [/CODE] afin de l'afficher correctement.

    En ce qui concerne ton code, c'est pas bon du tout, tu as fait une liste, tu peux donc pas mettre de clefs ou de valeur comme si tu faisais un dictionnaire.

    Une liste et un dictionnaire sont deux choses différente avec des commandes similaire mais point de vue structure c'est complètement différent !

    j'ai pas trop lu ce que tu voulais exactement, mais si tu veux les rentrer à la main via un input tu peux passer par une boucle while

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    maison=[]
    while 1:
        NbMaison=input("Nombre de Maison: ")
        if NbMaison == "":
            break
        else:
            valeurMaison =int(input("Valeur Maison: "))
            NbMaison = int(NbMaison)
            maison.append((NbMaison, valeurMaison))
    print(maison)
    [(1, 1), (3, 5), (8, 150), (18000, 30)]
    EDIT:

    En qui concerne l'aide pour extraire le plus grand et plus petit:

    Selon moi, il faut que tu partes sur une nouvelle boucle, avec 4 valeurs de base par exemple.
    Exemple pour le parcours d'un liste simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    i, max, min = 0,0,100 # retirer i si boucle for
    liste = [1,9,10,23,50]
    while i < len(liste): # ou for i in range(5):
        if max <= liste[i]:
            max = liste[i]
        if min >= liste[i]:
            min = liste[i]
        i+=1
    print("Voici le nombres max: {0} et le nombre minimum: {1}.".format(max,min))
    Voici le nombres max: 50 et le nombre minimum: 1.

  7. #7
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    Citation Envoyé par amfortaf Voir le message
    la clef et comme abssiss et la valeur comme ordonner
    ah ok, d'un coup on comprend mieux, donc effectivement si tu parles de couples clé-valeur c'est un simple dictionnaire qu'il te faut et non pas une liste de tuples

    note tout de même que le dictionnaire se prête assez mal à l'exercice ici, pour une clé donnée il ne peut correspondre qu'une seule valeur, donc si tu as 2 maisons qui ont la même abcisse, tu stockes l'ordonnée de quelle maison ? (ça n'est pas infaisable mais c'est bien plus compliqué qu'en utilisant une liste de tuples)

    ps: si tu pouvais faire un petit effort sur ton orthographe ce serait pas du luxe, d'avance merci de ta compréhension

    @papyfouette: je sais pas si c'est voulu de ta part de décortiquer le min/max, sinon pour rappel python dispose déjà de builtins min() et max() qui prennent une liste en paramètre

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Remplir mon arrayList avec une boucle for?
    Par kolann dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 10/11/2010, 12h04
  2. Structure while avec une boucle for en test
    Par le_voisin dans le forum C++
    Réponses: 9
    Dernier message: 09/09/2006, 19h16
  3. Problème avec une boucle for
    Par cisse18 dans le forum Général JavaScript
    Réponses: 20
    Dernier message: 29/03/2006, 16h50
  4. Incrémentation dynamique d'un textbox avec une boucle for
    Par Etanne dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/03/2006, 15h17
  5. : remplir des zones de texte avec une boucle For
    Par Haro_GSD dans le forum Access
    Réponses: 3
    Dernier message: 20/09/2005, 21h23

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