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 :

Exo liste python


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2022
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2022
    Messages : 9
    Par défaut Exo liste python
    Bonjour

    Quel le code python pour:

    Définir la fonction min(k,L) qui prend un entier k et une liste L et qui renvoie la liste des index des k premiers minimum de la liste L. La fonction pourra parcourir k fois la liste L. Il est possible d’utiliser l’objet inf du module math qui permet de gérer l’infini.

    Par exemple l’appel min(3, [5,9,10,2,6,8]) renvoie la liste [3,0,4].


    Merci

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Salut,

    Qu'avez vous essayé de faire et qu'est ce qui vous bloque?

    Il y a plein d'algorithmes et de codes pour faire çà.
    Ils n'ont aucun intérêt sauf côté le boulot pour les découvrir et les coder.

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

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2022
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2022
    Messages : 9
    Par défaut Exo liste python
    Salut, j'ai ça mais c'est pas bon:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    def min(k,l):
        res = []
        for i in range(k):
            index_min = 0
        for j in range(1,len(l)):
            if l[j] < l[index_min]:
                index_min = j
            l[index_min] =np.inf
            res.append(index_min)
        return res

  4. #4
    Membre éclairé Avatar de Bayard
    Inscrit en
    Juin 2002
    Messages
    863
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 863
    Par défaut
    Citation Envoyé par luvod Voir le message
    Salut, j'ai ça mais c'est pas bon:

    def min(k,l):
    res = []
    for i in range(k):
    index_min = 0
    for j in range(1,len(l)):
    if l[j] < l[index_min]:
    index_min = j
    l[index_min] =np.inf
    res.append(index_min)
    return res
    Heu, il faut utiliser les balises de code (sinon personne ne lira ni ne pourra recopier votre code) et poster également l'erreur obtenue.
    Est-ce que c'est cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    def min(k,l):
        res = []
        for i in range(k):
            index_min = 0
        for j in range(1,len(l)):
            if l[j] < l[index_min]:
                index_min = j
            l[index_min] =np.inf
            res.append(index_min)
        return res
     
    if __name__ == "__main__":
        min(8,6)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Traceback (most recent call last):
      File "fred.py", line 13, in <module>
        min(8,6)
      File "fred.py", line 5, in min
        for j in range(1,len(l)):
    TypeError: object of type 'int' has no len()

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2022
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2022
    Messages : 9
    Par défaut Exo liste python
    Pardon pour les balises. Oui mais il n'y a pas de messages d'erreurs. Ce code ne donne pas le résultat attendu par exemple pour min(3, [5,9,10,2,6,8]) j'aimerais comme retour la liste [3,0,4]

    Merci

  6. #6
    Membre éclairé Avatar de Bayard
    Inscrit en
    Juin 2002
    Messages
    863
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 863
    Par défaut
    Donc le code est
    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
    import numpy as np
     
    def min(k,l):
        res = []
        for i in range(k):
            index_min = 0
        for j in range(1,len(l)):
            if l[j] < l[index_min]:
                index_min = j
            l[index_min] =np.inf
            res.append(index_min)
        return res
     
    if __name__ == "__main__":
        print(min(3, [5,9,10,2,6,8]))
    le résultat est
    au lieu de
    C'est ça ?

  7. #7
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Citation Envoyé par luvod Voir le message
    Ce code ne donne pas le résultat attendu par exemple pour min(3, [5,9,10,2,6,8]) j'aimerais comme retour la liste [3,0,4]
    Avant de poster du code, il faudrait décrire l'algorithme/méthode retenue pour obtenir le résultat...

    Citation Envoyé par luvod Voir le message
    Ce n'est pas l'exercice initial que je remets:

    Définir la fonction min(k,L) qui prend un entier k et une liste L et qui renvoie la liste des index des k premiers minimum de la liste L. La fonction pourra parcourir k fois la liste L. Il est possible d’utiliser l’objet inf du module math qui permet de gérer l’infini.

    Par exemple l’appel min(3, [5,9,10,2,6,8]) renvoie la liste [3,0,4].
    Comme c'est identique, c'est bien de le dire mais... ça ne dit rien de plus sur ce que vous attendez (de nous).


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

  8. #8
    Membre Expert
    Avatar de Pyramidev
    Homme Profil pro
    Tech Lead
    Inscrit en
    Avril 2016
    Messages
    1 513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Tech Lead

    Informations forums :
    Inscription : Avril 2016
    Messages : 1 513
    Par défaut
    Citation Envoyé par luvod Voir le message
    Définir la fonction min(k,L) qui prend un entier k et une liste L et qui renvoie la liste des index des k premiers minimum de la liste L. La fonction pourra parcourir k fois la liste L. Il est possible d’utiliser l’objet inf du module math qui permet de gérer l’infini.

    Par exemple l’appel min(3, [5,9,10,2,6,8]) renvoie la liste [3,0,4].
    Bonjour,

    Je ne vais pas donner entièrement la solution, mais voici un indice :
    L'auteur de l'énoncé s'attend vraisemblablement à ce que le code min(3, [5,9,10,2,6,8]) fasse ceci :

    • res = []
    • Parcourir la liste pour trouver le minimum. Il est à l'indice 3.
    • res.append(3)
    • L[3] = math.inf
    • Parcourir la liste pour trouver le minimum. Il est à l'indice 0.
    • res.append(0)
    • L[0] = math.inf
    • Parcourir la liste pour trouver le minimum. Il est à l'indice 4.
    • res.append(4)
    • Éventuellement L[4] = math.inf. Cela ne sert à rien, mais ce n'est pas grave si le code fait cela aussi, comme les itérations précédentes.
    • return res

    À présent, il y a deux choses à faire :

    • Remplacer le texte "Parcourir la liste pour trouver le minimum." par le vrai code.
    • Généraliser la procédure ci-dessus avec k un entier naturel quelconque et pas seulement 3.

    Il faut essayer de penser ces deux choses de manière séparée. Il faut décomposer le problème en sous-problèmes.

  9. #9
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 212
    Par défaut
    Hello,
    une solution interdite pour le fun car elle utilise une bibliothèque standard python ( heapq) :
    >>>import heapq
    >>>test_list = [5, 9, 10, 2, 6, 8]
    >>>print(heapq.nsmallest(3, range(len(test_list)), key=test_list.__getitem__)) # liste indices
    >>>[3, 0, 4]
    Ami calmant, J.P

Discussions similaires

  1. Recherche des ptis exos pour python
    Par newsuser dans le forum Général Python
    Réponses: 4
    Dernier message: 27/11/2011, 23h06
  2. Manipulation list python
    Par Aioros046 dans le forum Général Python
    Réponses: 7
    Dernier message: 10/03/2010, 15h40
  3. Tri Liste Python
    Par Isabella83 dans le forum Général Python
    Réponses: 1
    Dernier message: 09/01/2010, 17h13
  4. vecteur C vers liste Python
    Par jyjeanphi dans le forum Interfaçage autre langage
    Réponses: 4
    Dernier message: 30/03/2009, 05h01
  5. Que choisir pour une application de "gestion d'une todo liste" ? Python ou Java ?
    Par Yoshidu62 dans le forum Langages de programmation
    Réponses: 3
    Dernier message: 10/08/2007, 09h03

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