Maison  >  Article  >  base de données  >  Comment compter le nombre d'occurrences de lettres en Python

Comment compter le nombre d'occurrences de lettres en Python

php中世界最好的语言
php中世界最好的语言original
2018-04-09 17:54:0512931parcourir

Cette fois je vais vous montrer comment compter le nombre d'occurrences de lettres en Python. Quelles sont les précautions pour compter le nombre d'occurrences de lettres en Python. Voici un cas pratique, prenons. un regard.

Titre :

Comptez le nombre d'occurrences de chaque mot dans un fichier et listez les 5 mots les plus fréquents.

Avant-propos :

Cette question est largement utilisée dans des scénarios d'application pratique, tels que les statistiques sur les étudiants de haut niveau apparus dans le Examens CET-4 et CET-6 au fil des années. Vocabulaire de fréquence, je me souviens que Li Xiaolai a utilisé ses compétences en programmation pour publier un livre à succès sur la mémorisation de mots, qui était très populaire parmi les étudiants. Il s’agit d’un scénario typique dans lequel les compétences en programmation sont utilisées pour résoudre des problèmes réels. De plus, lors de l'analyse des données, ces effets de nuage de mots sont essentiellement basés sur des statistiques de fréquence des mots pour ajuster la taille de la police. Si vous pouvez utiliser habilement les connaissances de Python pour résoudre des problèmes, cela signifie que vous débutez vraiment avec Python.

Analyse

Cette question examine principalement les aspects suivants de la connaissance :

1. Écrire des fichiers

Pour lire et écrire des fichiers en python, vous pouvez utiliser la fonction intégrée open(), et la fonction open présente certaines différences en python2 et python3 pour. Par exemple, en Python, vous pouvez spécifier le format d'encodage read pour l'écriture de fichiers, mais Python ne le peut pas. Afin d'être compatible avec 2 et 3, nous utilisons généralement la fonction open sous le module io. Vous pouvez consulter la documentation pour trouver. Découvrez la différence entre eux et cultivez la capacité d'apprentissage actif et la capacité de vérification des informations.

Un autre point est que le descripteur de fichier doit être fermé après la lecture et l'écriture du fichier. En plus d'utiliser la syntaxe try...sauf...finally, nous pouvons également utiliser la syntaxe plus élégante with.. .as syntaxe pour fermer automatiquement le fichier.

2. Comment trier les données

La fonction triée est une fonction intégrée fréquemment utilisée, et son utilisation est également très puissante car elle peut spécifier des paramètres clés pour effectuer un tri personnalisé, ce qui signifie que vous pouvez non seulement trier les chiffres et les lettres, mais également trier les listes, les dictionnaires et les objets personnalisés. Il vous suffit d'indiquer à la fonction triée quelles sont les règles de tri, par exemple Pour un objet personne, je peux. triez-le par âge ou par taille et poids, cette fonction est donc très flexible. De plus, il existe une méthode de tri intégrée pour les objets de liste. Si vous pouvez clairement distinguer la différence entre list.sort et sorted, cela signifie que vous pouvez déjà l'utiliser. avec souplesse.

3. Utilisation du type de données dictionnaire

Pour faire des statistiques de fréquence de mots, l'utilisation d'un dictionnaire est sans aucun doute le type de données le plus approprié, avec des mots comme les clés du dictionnaire, le nombre de fois qu'un mot apparaît est utilisé comme valeur du dictionnaire, et la fréquence de chaque mot est facilement enregistrée. Le dictionnaire ressemble beaucoup à notre annuaire téléphonique, avec chaque nom associé à un numéro de téléphone. . De plus, la plus grande caractéristique du dictionnaire est que sa vitesse de requête est très rapide. Dans des circonstances idéales, la complexité temporelle est O(1), je veux dire des circonstances idéales. Si vous souhaitez en savoir plus sur les dictionnaires, il est recommandé de lire cet article https://www.laurentluce.com/. posts/ python-dictionary-implementation/

4. L'utilisation d'expressions régulières

Pour le traitement du texte et des chaînes, les expressions régulières sont simplement un artefact. , il est largement utilisé qu'il s'agisse d'exploration ou de nettoyage de données. Bien sûr, les expressions régulières ne sont pas uniques à Python. Elles sont prises en charge par tous les langages de programmation. apprenez les expressions régulières mais aussi d'autres API, ce n'est que si nous sommes familiers avec l'API que nous pouvons l'appliquer à des scénarios réels. Je recommande un article sur les expressions régulières : http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html De plus, j'ai également découvert que certains étudiants avaient présenté la bibliothèque de segmentation de mots jieba. La bibliothèque fait la segmentation des mots chinois, c'est très utile. Si vous êtes intéressé, vous pouvez en apprendre davantage.

Mise en œuvre

Après l'avoir analysé, nous pouvons effectivement le mettre en œuvre très rapidement. Ainsi, lorsque nous recevons une exigence, nous devons d'abord clarifier l'exigence et réfléchir aux technologies qui peuvent être utilisées pour y parvenir, puis commencer à écrire du code. En fait, au travail, nous passons en réalité moins de la moitié du temps à écrire du code.

# -*- coding:utf-8 -*-
import io
import re
class Counter:
 def init(self, path):
 """
 :param path: 文件路径
 """
 self.mapping = dict()
 with io.open(path, encoding="utf-8") as f:
  data = f.read()
  words = [s.lower() for s in re.findall("\w+", data)]
  for word in words:
  self.mapping[word] = self.mapping.get(word, 0) + 1
 def most_common(self, n):
 assert n > 0, "n should be large than 0"
 return sorted(self.mapping.items(), key=lambda item: item[1], reverse=True)[:n]
if name == 'main':
 most_common_5 = Counter("importthis.txt").most_common(5)
 for item in most_common_5:
 print(item)

Imprimer les résultats :

('est', 10)
('mieux', 8)
('que', 8)
('le', 6)
('à' , 5)

Résumé

Quand je regarde votre code, de nombreux codes ont encore une dénomination irrégulière (il est recommandé de lire PEP8) , la disposition du code prête à confusion (il est difficile à lire, il est recommandé d'utiliser Pycharm pour le formatage). Il existe également de nombreux codes dont les méthodes d'implémentation semblent très compliquées (plus le code est complexe, plus il contient généralement de bugs). Bien entendu, la méthode de mise en œuvre n’est pas la seule.

Par exemple, le module Python lui-même fournit une classe collections.Counter, qui hérite de la classe dict et est utilisée pour les statistiques. J'ai découvert que certains étudiants utilisent cette classe pour l'implémenter. J'ai découvert que le compteur que j'ai implémenté est très similaire au compteur sous collections. En fait, il s'agit de créer des roues. Bien sûr, si vous avez des choses toutes faites au travail, ce n'est pas nécessaire. fabriquez vos propres roues, à moins que vous ayez la confiance nécessaire pour faire mieux. Vous pouvez également réfléchir à ce que vous feriez si Python ne fournissait pas l'outil Counter.

De plus, ce module fournit également un objet dictionnaire ordonné OrderedDict, qui peut nous éviter des opérations de tri manuel. Enfin, je vous recommande d’étudier et de résumer tout le contenu que j’ai mentionné ci-dessus. Si vous pouvez persister pendant 100 jours, je pense que vous maîtriserez bien Python.

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée :

Comment convertir une matrice en liste en Python

Les listes, les tableaux et les matrices interagissent les uns avec les autres en python Méthode de conversion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn