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 :

indice et la valeur de la liste


Sujet :

Python

  1. #1
    Membre à l'essai
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2018
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Septembre 2018
    Messages : 27
    Points : 20
    Points
    20
    Par défaut indice et la valeur de la liste
    Bonjour,

    J'écris une fonction qui prend une liste d'entier en entrée et qui renvoie le plus petit élément de cette liste.

    ceci est mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    def smaller(m):
    	min = m[0] # on choisis la valeur de l'indice 0 est la plus petite
    	for elt in m:
    		if elt < min: 
    			min = elt
    	return min
    s = [100,2000,5000,78]
    print(smaller(s))
    Le prof nous a donné un code qui affiche l'indice et aussi le plus petit élément de la liste. J'ai du mal à comprendre ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    def smaller(m):
    	ind = 0 
    	val = m[0]
    	for i in range(len(m)): 
    		if val > m[i]:
    			val = m[i]
    			ind = i
     
    	return ind, val
    s = [100,12,5,78,875,34]
    print(smaller(s))
    Pourquoi dans la ligne if, c'est val > m[i], et non pas val < m[i] ?
    Merci

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Citation Envoyé par lucie34 Voir le message
    Pourquoi dans la ligne if, c'est val > m[i], et non pas val < m[i] ?
    Soient A et B deux nombres, est-ce qu'écrire la condition sous la forme A < B ou sous la forme B > A change quelque chose ?

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

  3. #3
    Membre à l'essai
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2018
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Septembre 2018
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    Dans la ligne de condition, si c'est if val < m [i] :, ça s'affiche l'entier le plus grand. Donc, c'est faux.

    Je ne comprends pas pourquoi on met if val > m [i] pour afficher le plus petit entier.

  4. #4
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Citation Envoyé par lucie34 Voir le message
    Je ne comprend pas pourquoi on met if val > m [i] pour afficher le plus petit entier.
    On veut que val soit le plus petit nombre de la liste. Mais si on trouve val > m [i], ça veut dire que m[i] est plus petit, et donc que val n'est pas encore le plus petit. Il faut donc faire val=m[i] et continuer la boucle.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  5. #5
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    Et comme cela, c'est plus compréhensible ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    def smaller(m):
    	indice_mini = 0 
    	mini = m[0]
    	for i in range(len(m)): 
    		if m[i] < mini:
    			mini = m[i]
    			indice_mini = i
     
    	return indice_mini, mini
    s = [100,12,5,78,875,34]
    print(smaller(s))
    Pas d'aide par mp.

  6. #6
    Membre émérite

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Points : 2 328
    Points
    2 328
    Par défaut
    Ta variable "min" c'est la variable "val" dans le code du prof.
    Et "elt" c'est m[i]. Donc c'est bien comme ce que dit wiztricks, juste une inversion A>B => B<A

  7. #7
    Membre à l'essai
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2018
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Septembre 2018
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    Oui, c'est plus claire de faire cette inversion. Merci

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

Discussions similaires

  1. Récupérer l'indice d'une valeur choisie dans une liste déroulante
    Par winflow dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 06/01/2014, 12h15
  2. Conserver la valeur d une liste deroulante
    Par kykyn dans le forum Langage
    Réponses: 14
    Dernier message: 10/11/2005, 14h36
  3. Réponses: 1
    Dernier message: 29/09/2005, 11h10
  4. Ajouter un valeur dans une liste modifiable
    Par ancylia dans le forum Access
    Réponses: 1
    Dernier message: 22/09/2005, 12h50
  5. valeur d'une liste déroulante
    Par leeloo076 dans le forum ASP
    Réponses: 7
    Dernier message: 15/04/2004, 16h11

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