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 :

Fonction compteur occurences de mots [Python 2.X]


Sujet :

Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2016
    Messages : 22
    Points : 17
    Points
    17
    Par défaut Fonction compteur occurences de mots
    Bonjour, j'ai besoin d'une fonction qui compte les occurences de tous les mots d'une chaîne de caractères et qui renvoit une liste de mots associés à leurs occurences, mais je sais pas comment faire pour compter chaque mots. Auriez-vous une solution svp?

    EDIT : Finalement j'ai choisi de classer les mots de la chaîne de caractères dans une liste, où chaque élément correspond à un mot, comment faire donc pour compter les occurences de ces mots contenus dans une liste?

  2. #2
    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,

    Si les mots se trouvent dans une liste, le type "list" comporte la méthode .count(x) qui renvoie le nombre d’occurrences de x dans la liste.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    L = ["a", "b", "c", "c", "d"]
    for x in L:
        print(x, L.count(x))
    a 1
    b 1
    c 2
    c 2
    d 1
    Bien sûr, le nombre sera le même pour tous les doublons (ici 2 pour les 2 x "c").
    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

  3. #3
    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,

    La solution a des problèmes répétitifs existe souvent dans les bibliothèques.
    Dans ce cas, on a Counter du module collections:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> from collections import Counter
    >>> Counter('aabbbccccdddd')
    Counter({'d': 4, 'c': 4, 'b': 3, 'a': 2})
    qui fait plus que compter les occurrences dans un itérable (chaine ou liste).

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

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2016
    Messages : 22
    Points : 17
    Points
    17
    Par défaut
    Merci je vais essayer tout ça

    EDIT : En fait dans la liste dans laquelle je dois compter les occurences des mots, il reste encore des espaces que je souhaite supprimer pour ne pas polluer le résultat.
    J'ai donc écrit ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for i in Format1:
            if Format1[i]==" ":
                del Format1[i]
            else:
                Format1[i]=Format1[i]
    Mais ça ne marche pas , quelqu'un a une autre solution?

  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
    avec split ?
    Split, c'est fantastique.
    Pas d'aide par mp.

  6. #6
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    Je vois par ailleurs ue tu souhaites réaliser un programme d'analyse de texte. Objectif ambitieux. Puisque tu vises haut, il faut des bases solides. Et donc il faut apprendre à programmer.

    Quand je vois ce passage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      else:
                Format1[i]=Format1[i]
    Je vois que tu tapes des trucs au hasard. Tu peux taper des commandes au hasard. Après quelques millions de tentatives, ton programme marchera. Mais ça ira plus vite si tu apprends à programmer.

    Peut-être via ce tutoriel : http://lazarus.developpez.com/cours/...programmation/ ?
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  7. #7
    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 tbc92 Voir le message
    C'est pas pour critiquer ce tuto. mais Lazarus est une variante de Pascal. Pour Python, nous avons des tutos équivalents et nous recommandons plutôt le Swinnen.

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

  8. #8
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    Je pense que son premier besoin n'est pas d'apprendre le LANGAGE python, mais d'apprendre les bases de la programmation... (les concepts de boucles, de variables, d'affectation, d'algorithme, qui sont communs à tous les langages) ; c'est pourquoi j'ai cherché un tutoriel plus général.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2016
    Messages : 22
    Points : 17
    Points
    17
    Par défaut
    Merci pour vos réponses et tutos, c'est juste mon split qui était mal défini.

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 30/07/2009, 13h08
  2. fonction de recherche par mot clé sous SQL SERVER 2005
    Par solawe dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 20/07/2007, 19h31
  3. [MySQL] fonction compteur de visite avec bdd sur onclick
    Par akara dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 12/06/2007, 14h13
  4. Réponses: 5
    Dernier message: 15/03/2007, 06h58
  5. Fonction pour changer le mot de passse d'un utitilisateur
    Par Safaritn dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 16/02/2005, 13h51

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