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 :

liste décroissante python


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 2
    Par défaut liste décroissante python
    Bonjour à tous
    je cherche une fonction qui me permettrais de compter le nombre d'utilisation de chaque mot présent dans une liste (sous forme de doc .txt que j'ai déjà importer dans mon programme) et qui pourrait me les démontrer en liste décroissante
    je suis parvenue à trouver comment obtenir leur nombre d'utilisation en revanche je ne parviens pas à les classer par ordre décroissant…
    si jamais quelqu'un a la solution ceci pourrait beaucoup m'aider merci

    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
    16
    17
    def nbapparition():
    	for fichier in ["montexte.txt"]:
    		texte = lireTexte(fichier)
    		texte = texte.split()
    		n = 0
    		motRepeter =
    		motApparition = 
    		print("mots + nombre d'apparitions: ")
    		for mot in texte:
    			if mot not in motRepeter:
    				for memeMot in texte:
    					if mot == memeMot:
    						n = n+1
    				motApparition.append(n)
    				print(mot," = ", n)
    				n = 0
    				motRepeter.append(mot)

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    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 835
    Billets dans le blog
    1
    Par défaut
    Bonjour

    Une liste possède la méthode sort() qui trie ladite liste selon le/les critères de ton choix (attention, le tri est sur place => ça modifie la liste d'origine) ou la fonction sorted(truc) qui retourne une liste copie triée de "truc"...
    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]

  3. #3
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Est-ce une volonté de tout recoder à la main ?

    Si tu utilises les types de base de Python, tu peux avoir des trucs bien pratiques pour t'aider. Quelques exemples :

    1) set(ma_liste_de_mots) retourne l'ensemble de tes mots sans doublons.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set(["hello", "world", "hello"])
    >>> {'hello', 'world'}
    2) Il y a une méthode count() sur les listes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ["hello", "world", "hello"].count("hello")
    >>> 2

  4. #4
    Nouveau candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 2
    Par défaut
    Merci de votre réponse

    j'ai entendu parler de cette fonction sort() mais le soucis c'est que je ne saurais pas comment la formuler pour que ça fasse ce dont j'ai besoin
    et justement j'ai besoin de calculer toutes les répétitions des mots pour établir les 5 plus fréquents du texte
    désolée si je ne suis pas très claire je m'y connais vraiment que très peu en python x)

  5. #5
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    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 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par jsnl6 Voir le message
    j'ai entendu parler de cette fonction sort() mais le soucis c'est que je ne saurais pas comment la formuler pour que ça fasse ce dont j'ai besoin
    Ah ben oui, c'est ça le plus dur dans l'utilisation d'outils génériques (donc adaptables): les adapter !!!

    Voici un exemple
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    tab=(("tata", 5), ("titi", 2), ("tutu", 7))
    print sorted(tab, key=lambda x:x[1])

    Ca donnera ("titi", 2), ("tata", 5), ("tutu", 7) (le tuple trié sur la clef "item[1]" qui simule, dans cet exemple, le nombre d'apparitions)...
    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]

  6. #6
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    j'ai entendu parler de cette fonction sort() mais le soucis c'est que je ne saurais pas comment la formuler pour que ça fasse ce dont j'ai besoin
    Tu ne crois qu'il serait plus utile de comprendre comment s'en servir que de tout recoder ? Peut-être que sort() n'est pas la fonction que tu veux. Ou peut-être que tu n'as su lui donner les bonnes entrées. Mais il vaut mieux creuser : si tu comprends comment ça marche, tu pourras t'en resservir plutôt que de recoder à chaque fois.


    @Sve@r : un dictionnaire semble plus approprié ^^
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>>data = {'foo':4, 'bar':1, 'zorg':10}
    >>>sorted(data, key=data.get)
    ['bar', 'foo', 'zorg']

  7. #7
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    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 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Bktero Voir le message
    @Sve@r : un dictionnaire semble plus approprié ^^
    Oui bien vu. J'y ai pensé mais trop tard

    Bien vu ton key=data.get. Moi je n'y aurais pas pensé et serais parti sur un sorted(data.items(), key=lambda x:x[1]) bien plus compliqué
    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]

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

    Citation Envoyé par jsnl6 Voir le message
    j'ai besoin de calculer toutes les répétitions des mots pour établir les 5 plus fréquents du texte
    Si ce n'est pas un exercice d'apprentissage des boucles, listes et autres mécanismes de base, Python dispose d'une bibliothèque assez riche qui contient une fonction qui fait déjà cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> from collections import  Counter
    >>> mots = list('abbcccddddeeeee')
    >>> counter = Counter(mots)
    >>> counter.most_common()
    [('e', 5), ('d', 4), ('c', 3), ('b', 2), ('a', 1)]
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. entre des listes en python
    Par chettane dans le forum Général Python
    Réponses: 2
    Dernier message: 10/10/2011, 13h49
  2. Concatenation de listes en python
    Par nicolas823 dans le forum Général Python
    Réponses: 7
    Dernier message: 07/04/2011, 17h01
  3. créer une liste décroissante
    Par djbad dans le forum Général Python
    Réponses: 5
    Dernier message: 08/07/2010, 07h14
  4. Tri de liste en python
    Par Isabella83 dans le forum Général Python
    Réponses: 22
    Dernier message: 10/01/2010, 13h22
  5. Supprimer les doubles d'une liste en python
    Par Sebcaen dans le forum Général Python
    Réponses: 2
    Dernier message: 22/10/2006, 18h41

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