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 :

pas le meme resultat avec count selon string ou liste


Sujet :

Python

  1. #1
    Membre régulier Avatar de Zembla
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2018
    Messages : 94
    Points : 88
    Points
    88
    Par défaut pas le meme resultat avec count selon string ou liste
    Bonjour,

    je veux compter le nombre d'occurrences d'un mot dans un texte. Quand j'utilise un count() sur une chaine, ça tombe juste. Quand je transforme la chaine en liste et que j'applique la même recherche sur la liste avec count() j'obtiens moins d'occurrences.


    J'ai essayé avec le module Counter sur une liste, même résultat, différend de count() sur la chaine

    J'ai vérifié et le bon résultat est sur le count() sur la chaine.

    Pour le comptage total de tous les mots, là j'arrive au bon résultat. C'est en cherchant le nombre d'occurrences d'un mot que ça coince.


    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    import os
    import re
     
     
    # chemin vers repertoire ou l'on se trouve
    rep_cour = os.getcwd()
     
    # nom du fichier
    fiSource = "donnees_test.txt"
    # lecture du fichier
    fs = open(rep_cour+'/data/'+fiSource, 'r')
    # renvoie le contenue du fichier
    ch = fs.read()
     
    # mise en bas de casse pour le texte
    ch = ch.lower()
     
    # conversion de la chaine en liste
    # methode split par defaut decoupe la chaine via les espaces
    liste = ch.split()
     
    # nombre d'element dans la liste donc de mots
    result = len(ch.split())
     
    # methode avec regex
    result2 = len(re.findall(r'\w+', ch))
     
     
    # supression des espaces dans la chaine
    chaine = ch.replace(" ", "")
     
    # longueur de la chaine (nombre caracteres)
    motresult = len(chaine)
     
    print(f"Il ya {result } mots et {motresult} caractéres sans espaces\n")
     
    # recherche occurences sur un mot
    print(f' sed apparait {ch.count("sed")} fois')
     
    #ne donne pas le bon resultat quant count sur la liste
    #print(f' sed apparait {liste.count("sed")} fois')
    merci pour toutes infos

  2. #2
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 811
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 811
    Points : 7 096
    Points
    7 096
    Par défaut
    Comment reproduire cela sans le fichier.

    Le plus simple est de créer un exemple reproduisant le problème.
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  3. #3
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 684
    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 684
    Points : 30 973
    Points
    30 973
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par Zembla Voir le message
    Quand j'utilise un count() sur une chaine, ça tombe juste. Quand je transforme la chaine en liste et que j'applique la même recherche sur la liste avec count() j'obtiens moins d'occurrences.
    Il y a une différence entre compter "sed" dans le texte "Le sedentaire est une personne pratiquant la sedentarite" (2 fois) et compter "sed" dans la liste ["Le", "sedentaire", "est", "une", "personne", "pratiquant", "la", "sedentarite"] (0 fois).

    Accessoirement os.getcwd() ne sert absolument à rien dans ton script.
    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]

  4. #4
    Membre régulier Avatar de Zembla
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2018
    Messages : 94
    Points : 88
    Points
    88
    Par défaut
    j'ai testé avec le même texte mais à l'interieur du script

    j'ai remis le même texte que dans le fichier distant , même résultat: avec le count sur la chaine, le résultat semble bon si je compare à ce que donne plusieurs sites "calculateur de mots" mais avec un count sur la liste ou avec Counter, il manque des occurrences.

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
     
    import re
    from collections import Counter
     
     
    ch = """Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce neque tortor, pulvinar eu mollis a, mollis et sem. Proin vehicula vehicula nulla sit amet ultrices. Duis sit amet ligula semper, hendrerit orci vel, ultricies quam. Integer consequat venenatis urna eget pharetra. Fusce accumsan risus euismod risus egestas pretium. Maecenas quis purus aliquam, pharetra felis nec, dictum orci. In quis elit mi. Praesent vel condimentum est. Curabitur dictum rhoncus ante, vitae sollicitudin elit scelerisque a.
    Duis ut urna at odio sollicitudin feugiat et sed nulla. Fusce odio ante, fermentum quis eros ut, rutrum blandit massa. Nulla aliquam leo a magna lacinia euismod. Donec laoreet, ante sed dictum porttitor, quam diam iaculis turpis, vitae lobortis tellus massa sed mauris. Integer malesuada enim nisl, non faucibus magna dapibus eu. Curabitur nec felis rutrum, scelerisque tortor non, porta arcu. Ut lacinia ante laoreet augue sollicitudin, a accumsan arcu fermentum.
     
    Vestibulum vel nisi tempor, tristique 95590 vitae, finibus metus. Donec egestas, lectus ut euismod imperdiet, nisl leo aliquet mi, quis elementum risus velit quis velit. Quisque tincidunt sapien ac iaculis molestie. Etiam hendrerit purus mi, quis suscipit dui ornare a. Duis consectetur venenatis enim ac vehicula. Suspendisse a est et risus faucibus faucibus vel at dolor. Pellentesque facilisis tellus in sodales tincidunt. Morbi efficitur magna ac mauris iaculis malesuada. 78100 pellentesque magna sit amet erat cursus sagittis.
     
    Curabitur dapibus dui nec tellus pretium pellentesque. Interdum et malesuada fames ac ante ipsum primis in faucibus. Morbi et mi velit. Donec sollicitudin urna sed viverra pharetra. Mauris ornare turpis nec quam consequat sodales. Phasellus ultrices vel augue sed placerat. In at erat id tortor facilisis lacinia. Cras vel pellentesque ligula. Nullam a arcu metus. Aenean vitae augue eu tellus tincidunt dictum. Ut vel rhoncus neque, non eleifend ante. Integer in efficitur tortor. Fusce fringilla in lacus sit amet mollis. Ut ex erat, venenatis in elit ac, auctor interdum lorem.
     
    Nulla eleifend non justo nec aliquam. Duis venenatis neque vel faucibus aliquam. Nam posuere ligula sodales, interdum diam porttitor, aliquam ligula. In euismod tincidunt gravida. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Fusce molestie nibh ut sem tincidunt, eu mollis erat aliquet. Nam non metus sed tortor cursus vestibulum vel eget felis. Fusce tortor enim, accumsan non odio a, ullamcorper lobortis elit. Nulla vel venenatis elit, sit amet pretium leo. In varius risus in tincidunt tempus. Etiam volutpat sit amet nisl eu posuere. Nulla dapibus sit amet dui quis scelerisque. Vivamus vehicula nisi in nunc tempus tincidunt. Ut mauris orci, molestie ut erat ut, gravida commodo tellus. Fusce eget erat porttitor, feugiat turpis et, dignissim ante. Praesent tellus neque, tempor non ornare vel, faucibus at felis.
     
    Aliquam hendrerit sit amet nunc id vulputate. Donec quam sem, euismod vitae nulla ac, tincidunt pulvinar purus. Aliquam consequat, eros ac feugiat porta, diam orci bibendum mauris, ut faucibus ex dui at orci. In hac habitasse platea dictumst. Mauris venenatis nisi elit, quis vulputate tellus imperdiet at. In hac habitasse platea dictumst. Pellentesque sed elit semper, pretium quam id, consectetur urna. Phasellus magna tellus, lacinia venenatis enim ut, lacinia vulputate elit. Aliquam elit lectus, scelerisque nec nisl vitae, scelerisque egestas purus. Cras posuere hendrerit magna, sed tempor dolor venenatis in. Aenean tortor libero, volutpat non aliquet hendrerit, sagittis in odio. Duis ac turpis neque. Cras ultricies purus nisl, eget varius quam viverra eget. Sed consequat eu turpis quis placerat. Aliquam erat volutpat.
     
    Nunc nulla erat, consectetur eu eros sit amet, tincidunt pulvinar metus. Morbi hendrerit iaculis nibh a volutpat. Vivamus ac tristique lorem. Proin at ultricies nulla, sit amet tincidunt magna. Vestibulum pellentesque velit quis velit venenatis tempor. Etiam lacus tellus, ullamcorper ut ornare vitae, tristique sed diam. Phasellus vel elit id metus sagittis euismod. Praesent pellentesque molestie dignissim. Ut in ornare augue, vitae consectetur enim. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Mauris ut mi magna. Fusce ultrices lacus molestie ante porttitor, in venenatis lorem ornare. Phasellus sed imperdiet ligula, sed venenatis augue. Nullam et nunc placerat, hendrerit nunc ut, eleifend enim. Nullam sit amet hendrerit libero, sit amet fermentum tortor.
     
    Vivamus non gravida felis. Nulla ac neque dui. Proin elementum lacinia vehicula. Fusce quis porttitor est. Nullam in orci est. Mauris quis velit rutrum, consequat ex id, placerat eros. Curabitur pellentesque elit vitae sagittis auctor. Aenean convallis id nisl sit amet malesuada. Ut placerat commodo molestie. Nullam ultricies ante libero, ut blandit velit rutrum non. Etiam gravida augue in sagittis dictum.
     
    Cras ornare id nunc et placerat. Proin ornare sem eu metus efficitur, eget efficitur lacus egestas. Mauris feugiat leo a elementum sollicitudin. Nullam posuere diam libero. Sed mollis sit amet justo sit amet accumsan. Aliquam tristique lobortis sodales. Pellentesque nec feugiat augue, eget pretium mauris. Nunc interdum risus quam, sed iaculis orci condimentum at. Nunc ut imperdiet elit, non dignissim mauris. Suspendisse ut lacus ut tortor iaculis sagittis vitae sed mauris. Maecenas eu dapibus metus. Curabitur rhoncus ipsum malesuada blandit venenatis. Suspendisse lacinia posuere sem ac tempus. Ut dapibus risus at lorem malesuada tincidunt. Maecenas vulputate neque vel tellus egestas posuere.
     
    Integer tincidunt tortor vel sem rutrum posuere. Maecenas vitae ligula vestibulum, semper justo vitae, aliquet arcu. Aliquam id nulla mi. Phasellus eget sodales dolor, eu dictum erat. Vestibulum tempor gravida nisl, nec vulputate velit. Aliquam ut venenatis velit, eget lobortis massa. Proin pharetra velit mi, at fringilla enim efficitur quis. Aenean congue augue ornare, congue sem vestibulum, semper odio. Praesent at magna metus. Sed quam eros, egestas et sagittis et, dapibus nec arcu. Aliquam vel fringilla velit. Sed eu fringilla quam. Curabitur mattis orci erat, eu suscipit arcu efficitur a. Suspendisse potenti. Fusce rutrum ultricies urna.
     
    Vestibulum quis feugiat neque, nec bibendum mi. Nunc ultrices nisl lorem, et scelerisque tellus porttitor eu. Aenean condimentum vestibulum massa sit amet vestibulum. In magna neque, pharetra quis velit id, tempus congue neque. Etiam fringilla tempus sapien ut accumsan. Pellentesque eget mi et lorem posuere lobortis. Fusce tristique, enim vitae eleifend dictum, ligula nisl posuere purus, id placerat arcu nulla eget mauris. Integer varius porttitor purus, vel facilisis est pretium dapibus. Aenean posuere nisl sit amet risus dapibus, vel placerat felis vulputate.
     
    Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nullam tempus congue neque, quis ornare nisl consectetur finibus. Suspendisse dignissim dolor risus, a pulvinar mauris ullamcorper vitae. Integer placerat, ex ut porta aliquet, sem quam mollis justo, quis viverra elit est quis erat. Vivamus sit amet ultrices metus. Donec eu est neque. Nulla interdum dictum turpis, non consectetur felis dignissim eu. Morbi justo dolor, fermentum et velit varius, suscipit aliquam neque.
     
    Maecenas ultrices justo nisl, eu accumsan lorem gravida eu. Mauris quis mi volutpat massa lobortis vulputate sed a lacus. Maecenas lacus nisi, scelerisque vehicula venenatis eu, dapibus pretium lectus. Fusce ut tellus non mi blandit hendrerit. Mauris iaculis condimentum erat luctus bibendum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas gravida nisi nibh, et pulvinar augue lobortis finibus. Quisque nec urna vel justo imperdiet tempus et id turpis. Duis euismod est sed metus ultricies mollis. Donec nec scelerisque massa. Sed scelerisque venenatis velit eu convallis. Sed nec tristique mauris.
     
    Sed pharetra et metus ac sollicitudin. Proin et lobortis mauris, luctus dapibus nisl. Aenean id commodo ante. Vestibulum pretium faucibus massa eget luctus. Vivamus arcu lacus, finibus at volutpat eget, iaculis in risus. Maecenas finibus metus sit amet justo ullamcorper tincidunt. Nullam aliquet dui massa, eget scelerisque neque imperdiet malesuada. Mauris placerat, ante a ultrices bibendum, ipsum libero venenatis massa, a pharetra nisl ipsum quis ipsum.
     
    Duis sed magna faucibus, rutrum nulla sed, auctor nisl. Nullam aliquam turpis a nisi sodales dapibus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Etiam ornare lectus ligula, ac luctus nunc hendrerit luctus. Suspendisse consectetur mattis iaculis. Nullam porta metus id mi sagittis congue. Vestibulum semper nulla massa, eget vehicula erat tempus sed. Maecenas imperdiet mauris nec sem imperdiet dapibus. Mauris dictum sem non purus suscipit lacinia. Nullam at dapibus est. Donec a ipsum id ipsum suscipit tempus. Aliquam et nisl in dolor blandit efficitur. Aliquam non semper nunc.
     
    Phasellus at bibendum mauris, id fermentum enim. Vestibulum hendrerit condimentum est vel consectetur. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec fermentum vulputate arcu, sit amet varius ex commodo a. Phasellus sit amet interdum lorem, nec convallis ligula. Praesent convallis vitae sapien nec sodales. Praesent sed dignissim lorem. Praesent ac condimentum nunc, sit amet laoreet augue. Suspendisse tristique mauris interdum nunc convallis suscipit. Phasellus id lorem at mi ultricies sagittis consectetur ut diam.
     
    Pellentesque sit amet enim in magna vulputate egestas sed id lectus. Donec pulvinar eros eu neque tristique, a tristique libero sodales. Nulla et mauris nec lacus mattis gravida quis in eros. Nam et nibh sed turpis auctor mattis vel non felis. Quisque non erat non est blandit iaculis sodales ac est. Sed venenatis ligula ligula, non dignissim dolor posuere in. Vestibulum dictum massa at tincidunt maximus. Nulla facilisi. Maecenas malesuada, dui sit amet condimentum ultricies, risus orci sagittis nisi, ut vestibulum neque risus vitae eros. Sed eleifend, odio vel fringilla commodo, est velit rutrum metus, at elementum mi purus non dolor. Ut imperdiet ante eu finibus elementum. Nullam commodo ut est condimentum suscipit. Curabitur hendrerit laoreet urna, ut gravida ipsum gravida ut.
     
    Nam leo erat, fermentum sit amet ultrices ac, efficitur venenatis magna. Nam eu pretium neque. Donec ultricies lorem eu metus pharetra, vel aliquet magna tempor. Fusce id purus quis tellus efficitur aliquam. Maecenas eu dui lacinia, lacinia lorem nec, suscipit lorem. Vestibulum lacinia vel turpis nec porta. Mauris congue pellentesque nunc ac luctus. Nam dignissim mauris sem, non rutrum massa pellentesque in.
     
    In hac habitasse platea dictumst. Nullam imperdiet quam nisl, sed convallis sem tincidunt in. Fusce finibus vestibulum sem at aliquam. Donec pretium, leo sit amet euismod faucibus, urna erat pulvinar massa, ac maximus nisi tellus vitae mauris. In eu ultricies orci, vel dictum nisl. Vivamus diam nunc, auctor at lacus non, dictum porttitor tellus. Nullam a metus iaculis, dignissim mi a, viverra nunc. Aenean suscipit dapibus aliquam. Sed laoreet malesuada convallis. Fusce blandit sem velit, sed accumsan nisi consectetur et. Suspendisse in magna vitae neque imperdiet bibendum nec ut orci. Fusce sed pretium nunc, id ullamcorper arcu. Quisque lobortis, elit vel consequat mattis, orci arcu maximus ligula, elementum lobortis eros mauris fringilla felis. Suspendisse in nibh posuere, pellentesque arcu tempus, cursus ligula. Aliquam erat volutpat.
     
    Phasellus ut felis ac nisl tincidunt mollis et sit amet sapien. Praesent fermentum diam imperdiet dui gravida auctor. Praesent ullamcorper nec sem sed posuere. Etiam vulputate mi fermentum lorem tristique, vitae commodo ligula eleifend. Aenean efficitur mi et eros porta pulvinar. Quisque dignissim nisl in ipsum hendrerit aliquam. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nullam varius pretium ex, quis ultricies massa bibendum tincidunt. Pellentesque vel erat sem. Nulla facilisi. Suspendisse potenti. Nam nec aliquet massa, quis ornare ipsum. Nulla risus quam, cursus quis pulvinar ut, posuere eget eros. Quisque at convallis lorem.
     
    Nunc interdum erat risus, elementum aliquam eros tempus vitae. Sed hendrerit lobortis nunc, sit amet convallis odio interdum at. Integer semper tellus non dictum facilisis. Aenean efficitur felis quis tellus congue blandit. Nunc convallis diam vel diam mattis ornare. Curabitur at feugiat elit, vitae scelerisque quam. Nunc vitae auctor purus. Donec ornare lorem velit, nec blandit velit luctus ut. Phasellus vulputate sed metus vel pretium.
     
    In porttitor mi a nisl hendrerit, in laoreet ante interdum. Morbi hendrerit neque quis felis ornare, fermentum tristique nibh feugiat. Ut ut mauris ac eros mollis suscipit non a nisi. Cras in iaculis ex. Curabitur malesuada risus non diam venenatis accumsan. Curabitur vitae laoreet dolor, vitae mollis libero. Etiam non egestas neque. Suspendisse vel mi in est euismod tincidunt. Fusce tempus, tortor id ultricies aliquam, odio ante tristique odio, in vehicula turpis turpis at quam. Curabitur nulla massa, consectetur vel vehicula id, congue in enim. Duis nec orci ac libero sodales porta.
     
    In cursus erat ligula, quis porta elit posuere a. Etiam vitae nisl imperdiet, fringilla libero ac, sollicitudin nisi. Sed euismod libero non enim dignissim, nec vulputate urna tempus. Phasellus consequat sapien sed massa vulputate, sed maximus augue dictum. Vivamus ut placerat sem. Proin in metus non dui viverra interdum. Aliquam eu nisi metus. Ut vel turpis sed turpis gravida viverra eget nec urna.
     
    Mauris vehicula quis metus sed viverra. Donec facilisis turpis augue, vitae aliquet arcu euismod ac. Vivamus luctus, dolor vel molestie fringilla, ex sapien fermentum lorem, quis hendrerit tellus quam a ligula. Vestibulum mollis gravida elit, ut aliquam mauris faucibus sed. Nullam sed elementum est. Praesent turpis augue, lacinia sit amet ipsum in, condimentum vehicula augue. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla eu lobortis ex. Curabitur tincidunt pulvinar feugiat. Sed at posuere tortor. Nulla vestibulum euismod mauris.
     
    Nulla sit amet sapien sit amet felis accumsan interdum finibus id mi. Nunc ut blandit metus. Donec ut venenatis ex. Pellentesque at nisi a dolor placerat tincidunt quis ac dui. Pellentesque et consectetur est, ut volutpat quam. Interdum et malesuada fames ac ante ipsum primis in faucibus. Pellentesque nisi nibh, aliquet at velit eget, blandit efficitur dolor. Nullam tortor ex, ultricies non volutpat ut, luctus sed justo. Vivamus enim nisi, congue quis nisl nec, dictum gravida elit. Integer hendrerit nisi eu lacus bibendum dapibus. Cras eros tortor, dictum eget elit et, sollicitudin laoreet ligula. Quisque at neque eros.
     
    Suspendisse tempor sapien at felis tincidunt consequat. Aenean porta condimentum odio pellentesque porta. Aenean euismod nunc dui. Praesent vel pretium orci. Pellentesque ac euismod purus. Nam a libero ac erat aliquet gravida sed ut sapien. In eget maximus ante, in viverra nisi. In in lectus bibendum, molestie urna in, consectetur lacus. Curabitur in lorem et tortor tempor suscipit.
     
    Etiam efficitur erat vel sapien sagittis feugiat. Vestibulum ac leo sed felis suscipit posuere. Donec facilisis ante leo. Nullam fringilla faucibus nunc, vitae dictum lacus. Quisque et vulputate nisl. Nullam imperdiet justo orci, at cursus erat ornare ac. Integer auctor quis odio sed porta. Integer fermentum malesuada leo quis luctus. Etiam vel felis malesuada, imperdiet erat mattis, euismod ligula. Ut a justo vitae tortor dignissim hendrerit a in quam.
     
    Aliquam nec nulla gravida, tincidunt elit sed, semper sem. Sed id venenatis erat. Integer leo nisi, lobortis quis orci ut, dictum consectetur mi. Aliquam erat volutpat. Maecenas vulputate malesuada neque, a consequat massa tempor in. Aenean non auctor metus, et lobortis est. Nullam viverra malesuada scelerisque. Nullam ac dolor volutpat, lacinia elit a, placerat sem. Sed eget viverra enim, aliquet blandit dolor. Donec elementum orci sit amet magna egestas rutrum.
     
    Nullam non posuere quam. Cras suscipit nunc aliquam massa tincidunt, non tristique purus iaculis. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris libero mauris, suscipit ac imperdiet ut, suscipit vel massa. Maecenas non elit suscipit, dignissim tortor non, gravida ante. Ut ipsum nunc, consequat sit amet enim nec, auctor dictum risus. Sed porta purus eu massa accumsan, a placerat nisl bibendum. Nulla a finibus massa. Vivamus scelerisque consequat aliquet. Ut placerat ullamcorper orci, ac cursus orci eleifend ac. Pellentesque finibus feugiat lacus nec convallis. Quisque eu risus justo. Vestibulum rhoncus vestibulum enim, id cursus ipsum varius in. Phasellus eleifend imperdiet massa, sit amet ultricies dolor vulputate et. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Proin dapibus erat at pharetra sollicitudin.
     
    Sed dapibus justo vel varius volutpat. Fusce neque ante, finibus at sollicitudin quis, mollis vel mauris. In blandit fermentum efficitur. Nulla consequat, massa at lacinia auctor, neque arcu rutrum ligula, ac fringilla justo magna et ex. Nulla eu turpis egestas, egestas erat non, condimentum sapien. Pellentesque rutrum hendrerit est vel pellentesque. Vestibulum fringilla condimentum finibus. Nullam fringilla urna at magna sagittis, ut consequat ipsum tristique. Ut vel tincidunt tellus. Fusce vel accumsan felis. Donec vel orci convallis, imperdiet mi vel, porta lacus.
     
    Phasellus pellentesque sollicitudin bibendum. Proin quis ligula nec justo laoreet suscipit quis quis sapien. Suspendisse hendrerit, odio in dapibus dapibus, ipsum velit suscipit neque, vitae imperdiet dolor orci sed sem. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Vestibulum laoreet eleifend est, non ornare urna rutrum a. Proin in mi eget augue fermentum pellentesque luctus eu quam. Mauris vel convallis nunc. Nunc ac elit enim. Donec in arcu mollis, dapibus leo tincidunt, aliquet neque. Interdum et malesuada fames ac ante ipsum primis in faucibus. Proin nec rhoncus odio.
     
    Curabitur ut dui ex. In ac sagittis quam, quis laoreet ex. Vivamus posuere purus arcu, non ullamcorper eros tristique ut. Donec malesuada orci aliquam ante varius, vel fringilla dui mollis. Nulla efficitur tellus et leo pharetra dictum. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nunc mattis pulvinar mauris. Aliquam varius lobortis dignissim. Vestibulum tempus magna risus, quis imperdiet leo tincidunt eget.
     
    Quisque volutpat volutpat arcu pellentesque semper. Sed sed bibendum libero, quis dignissim arcu. Suspendisse potenti. Curabitur consectetur dolor gravida velit scelerisque pharetra. Morbi erat odio, tempor id magna cursus, scelerisque dapibus nibh. Cras quis eros in nulla ultrices consequat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin quis pulvinar turpis. Vivamus consequat ligula dapibus, mollis orci sed, ullamcorper mi. Vivamus venenatis tristique posuere. Maecenas sollicitudin diam at fringilla aliquet. Fusce varius et diam eu laoreet. Proin malesuada augue ac nunc dictum vulputate. Aliquam accumsan purus ac orci elementum, eget porta lorem dictum. Quisque non dictum arcu. Proin pretium ullamcorper commodo.
     
    Nam sit amet facilisis est, quis lobortis dui. Sed quis laoreet enim. Proin quis sapien placerat arcu aliquam egestas. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis in rhoncus arcu. Morbi eget nunc bibendum, finibus diam at, commodo velit. Sed et euismod nisl. Aliquam scelerisque sodales orci, a cursus magna venenatis et.
     
    Maecenas ac turpis sed eros varius eleifend. Ut ante eros, commodo sollicitudin mattis eu, suscipit quis leo. Pellentesque non risus nec lectus auctor volutpat vel varius ex. Ut tempus maximus purus, id pretium diam blandit nec. Duis suscipit pretium risus, vel aliquam risus tristique vitae. Duis aliquet dapibus massa sit amet auctor. Aliquam fermentum tincidunt nulla, sed aliquam diam tincidunt vel.
     
    Morbi eget turpis congue, mollis ipsum id, convallis elit. Sed et dapibus neque. Suspendisse ex massa, efficitur eu tincidunt at, egestas quis ipsum. In erat elit, pellentesque sit amet iaculis sed, ultricies ut augue. Curabitur tincidunt lectus id convallis posuere. Integer nec turpis nibh. Integer laoreet sem tellus, a viverra tellus blandit vitae. Proin consequat leo a lorem fermentum auctor.
     
    Nunc posuere lorem est, id mattis arcu consequat ut. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; In vitae elit ut nibh faucibus dignissim eget tempus justo. Curabitur diam diam, suscipit non lacus nec, facilisis vulputate orci. Nullam sollicitudin ex dictum, ultricies libero et, viverra nunc. Curabitur ipsum ante, elementum sed felis et, euismod convallis risus. Phasellus facilisis nibh ut leo convallis egestas. Phasellus a justo ante. Vivamus mollis cursus dui dignissim scelerisque. In hac habitasse platea dictumst. Nullam non dolor metus.
     
    Donec consequat commodo turpis, non elementum ligula sodales quis. Sed hendrerit tempor sapien, sit amet euismod arcu faucibus lobortis. Vivamus egestas quam porta turpis cursus, et fringilla quam tristique. Proin ac auctor ligula. Fusce euismod pharetra justo id convallis. Suspendisse in risus erat. Proin a enim placerat, congue orci in, finibus mauris. Curabitur tincidunt suscipit velit vitae dignissim. Donec non libero sed mauris ullamcorper ultrices ac vitae nisl. Quisque et ligula a ex elementum dictum. Nullam sed leo ultricies tellus ornare pretium a at libero. Vivamus gravida leo quis diam pulvinar scelerisque. Maecenas urna nibh, tincidunt et nulla eu, aliquet gravida ligula. Phasellus consequat pellentesque massa, vel scelerisque purus suscipit vel. Vivamus ac tincidunt urna.
     
    Nulla dapibus, nunc in faucibus ullamcorper, magna erat ultricies magna, ut cursus odio nisl vel risus. Phasellus in justo at sapien sodales egestas. Suspendisse aliquam dolor et sem tempor, et iaculis eros euismod. Ut vel pretium dolor. Curabitur efficitur consequat neque faucibus egestas. Vestibulum feugiat nisl fermentum, bibendum neque et, eleifend magna. Ut sit amet lectus non urna placerat scelerisque. Curabitur euismod tortor tempor tempus feugiat. Suspendisse dictum nisi eros, eu elementum lectus maximus vel. Maecenas sapien purus, pharetra non imperdiet eget, mattis vitae magna. Etiam cursus tristique ante quis bibendum. Aliquam finibus dui at neque ullamcorper vulputate. Aliquam laoreet ultrices mollis. Sed at luctus urna, ut posuere sem. Nulla ultrices elit purus, vitae auctor eros interdum nec.
     
    Pellentesque nec nisl justo. Praesent id eleifend magna, vel imperdiet sem. Mauris eu elit rutrum, sollicitudin lectus ac, posuere lectus. Vivamus consectetur condimentum dui sit amet consectetur. Donec non risus dignissim nulla venenatis auctor et et tortor. Duis bibendum semper justo, at molestie lorem congue vel. Duis ut tristique lectus. Nam et nisi imperdiet, faucibus neque ultrices, efficitur dui. In quis turpis mi. Aliquam ut nibh hendrerit, feugiat lorem et, pretium felis. Aenean hendrerit sed erat vel zembla."""
     
     
    # mise en bas de casse pour le texte
    ch = ch.lower()
     
    # conversion de la chaine en liste
    # methode split par defaut decoupe la chaine via les espaces
    liste = ch.split()
     
    # nombre d'element dans la liste donc de mots
    result = len(ch.split())
     
    # methode avec regex
    result2 = len(re.findall(r'\w+', ch))
     
     
    # supression des espaces dans la chaine
    chaine = ch.replace(" ", "")
     
    # longueur de la chaine (nombre caracteres)
    motresult = len(chaine)
     
     
    #print(f"Il ya {result } mots et {motresult} caractéres")
     
    print(f"Il ya {result } mots et {motresult} caractéres sans espaces\n")
     
    print(f"Il y a {len(ch)} caractéres avec espaces\n")
     
    # recherche occurences sur un mot
    print(f'avec la chaine sed apparait {ch.count("sed")} fois')
     
    # ne donne pas le bon resultat quant count sur la liste
    print(f'avec la liste sed apparait {liste.count("sed")} fois')
     
    resCounter = Counter(liste)
    total = resCounter['sed']
     
    # ne donne pas le bon resultat 
    print(f'avec Counter sed apparait {total} fois')

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

    sed sera compté dans les chaînes de caractères "sed" ou "sed," ou "sed."
    Mais dans la liste [ "sed", "sed,", "sed." ], il n'est présent qu'une fois.

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

  6. #6
    Membre régulier Avatar de Zembla
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2018
    Messages : 94
    Points : 88
    Points
    88
    Par défaut
    et oui Sve@r et wiztricks c'est ça , il y avait des virgules et points qui traînaient ici et là. En les supprimant ça donne le même résultat pour un count sur liste et avec la méthode Counter.

    merci

  7. #7
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 947
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 947
    Points : 9 275
    Points
    9 275
    Par défaut
    hello,
    il y aussi le findall pour compter les occurrences de sed :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    result4 = len(re.findall(r'sed',ch))
    résultat : 70

    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  8. #8
    Membre régulier Avatar de Zembla
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2018
    Messages : 94
    Points : 88
    Points
    88
    Par défaut
    effectivement Jurrasic Pork, dans le script j'avais essayé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    result2 = len(re.findall(r'\w+', ch))
    mais ça prend tous les caractères alphanumériques, donc virgules et points faussaient le résultat

    avec comme paramètre la string que l'on cherche ça fonctionne.

    merci

  9. #9
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 684
    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 684
    Points : 30 973
    Points
    30 973
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Zembla Voir le message
    mais ça prend tous les caractères alphanumériques, donc virgules et points faussaient le résultat
    Ah ben oui, c'est pas évident de traiter un texte. Je me souviens dans le mooc Python l'exercice final était de refaire un simili "wc" mais ça m'a gonflé (je trouvais pas le bon résultat par rapport au résultat demandé) alors comme j'avais de l'avance j'ai laissé tomber.
    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]

  10. #10
    Membre régulier Avatar de Zembla
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2018
    Messages : 94
    Points : 88
    Points
    88
    Par défaut
    Ce qui marche le mieux (compte tenu de mon niveau de débutant) c'est de nettoyer le texte de la ponctuation avec un regex et faire un count sur la liste.

    la regex suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    len(re.findall(r'mot', ch))
    donne un résultat erroné, comme remarqué ci-dessus, elle doit prendre dans le lot aussi bien le mot "mot" que "motard", "motus", etc.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 22/10/2008, 15h16
  2. COUNT() selon un pas de valeurs ?
    Par ctobini dans le forum Requêtes
    Réponses: 1
    Dernier message: 17/06/2008, 11h53
  3. Réponses: 4
    Dernier message: 15/05/2008, 17h38
  4. [MySQL] pas de resultat avec pdo (drivers sqlite2)
    Par jexl dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 03/02/2008, 17h01
  5. [AJAX] Avec IE, une string trop longue ne passe pas
    Par cels dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 11/10/2007, 16h24

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