今回は、Python が文字の出現数をカウントする方法を説明します。 Python で文字の出現数をカウントするときの 注意事項 は何ですか。実際のケースを見てみましょう。
タイトル:
ファイル内の各単語の出現数を数え、最も頻繁に使用される 5 つの単語をリストします。1. ファイルを正しく読み書きする方法
Python でファイルを読み書きするには、組み込み関数を使用できます。 open() と python2 と python3 の open 関数には特定の違いがあります。たとえば、Python ではファイルの読み取りと書き込みのエンコード形式を指定できますが、通常は 2 と 3 の両方と互換性を持たせることができません。 io モジュールの open 機能を使用すると、ドキュメントをチェックしてドキュメント間の違いを理解し、アクティブな学習能力と情報を確認する習慣を身に付けることができます。 もう 1 つのポイントは、ファイルの読み取りと書き込み後に、ファイル記述子を閉じる必要があるということです。try...excel...finally 構文を使用するだけでなく、より洗練された with...as 構文も使用できます。ファイルを自動的に閉じます。
2. データを並べ替える方法sorted 関数は頻繁に使用される組み込み関数であり、パラメーター キーを指定することでカスタマイズされた並べ替えを実行できるため、その使い方も非常に強力です。数値と文字を並べ替えるだけでなく、リスト、辞書、カスタム オブジェクトを並べ替えることもできます。たとえば、人物オブジェクトの場合は、年齢に従って並べ替えることができます。さらに、list.sort とsorted の違いを明確に区別できれば、この関数は非常に柔軟に使用できます。
3. 辞書データ型の使用 単語頻度統計を行うには、単語が辞書のキーとして使用され、単語の回数が最適なデータ型であることは間違いありません。が辞書の値として使用されます。 記録が簡単です。 各単語の出現頻度を決定することにより、辞書は電話番号に関連付けられた電話帳によく似ています。また、この辞書の最大の特徴は、検索速度が非常に速いことです。理想的には、時間計算量は O(1) です。辞書について詳しく知りたい場合は、この記事を読むことをお勧めします
https://www.laurentluce.com/posts/python-dictionary-implementation/。
4.正規表現の使用 テキストと文字列の処理では、正規表現は単なる成果物であり、データ クローリングやデータ クリーニングに広く使用されています。 Python への変換は、すべての
プログラミング言語でサポートされています。私たちがしなければならないのは、正規表現を学ぶだけでなく、その API に慣れることによってのみ、それを実際のシナリオに適用できるようになります。正規表現に関する記事をお勧めします: http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html また、一部の学生がこのライブラリを紹介していることもわかりました。は中国語の単語の分割を行っているので、興味があれば学ぶことができます。
# -*- 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)
印刷結果:
('is', 10)
('better', 8)
('than', 8)
('the', 6)
('to', 5)
概要
あなたのコードを見ると、多くのコードは依然として不規則な名前を持っており (PEP8 を読むことをお勧めします)、コードのレイアウトはわかりにくいです (読みにくいため、フォーマットには Pycharm を使用することをお勧めします)。実装方法が非常に複雑に見えるコードも多数あります (コードが複雑になればなるほど、通常はバグが多くなります)。もちろん、実装方法はこれだけではありません。
たとえば、Python モジュール自体は、dict クラスを継承し、統計に使用される collections.Counter クラスを提供します。注意していれば、このクラスを使用していることがわかります。私が実装したカウンターは、コレクションのカウンターと非常によく似ています。実際、これはホイールの作成であり、既製のものがあれば、作成する必要はありません。もっとうまくできるという自信がない限り、自分のホイールを使ってください。 Python が Counter ツールを提供しなかったらどうするかを考えることもできます。
さらに、このモジュールは順序付き辞書オブジェクト OrderedDict も提供します。これにより、手動による並べ替え操作を省略できます。最後に、上で述べたすべての内容を学習して要約することをお勧めします。 100日続けることができれば、Pythonをかなり理解できるようになると思います。
この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。
推奨書籍:
以上がPython で文字の出現数を数える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。