0Pricing
Python Academy · レッスン

Counter

項目を簡単に数えます

「Counter」はCoddyKit上の無料Python Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPython Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Python Academyコースには全4レッスンが含まれています。

Counterとは何ですか?

Counterは、カウント処理向けに作られたcollectionsモジュールの辞書サブクラスです。項目を渡すと、それぞれの出現回数を数えます。

from collections import Counterでインポートします。

from collections import Counter
c = Counter(['a', 'b', 'a', 'c', 'a'])
print(c)

文字を数える

文字列を含む任意のイテラブルを渡すと、Counterは各要素を数えます。文字列は1文字ずつカウントされます。

from collections import Counter
c = Counter('mississippi')
print(c)

カウントを参照する

辞書のキーと同じようにカウントにアクセスします。存在しないキーを指定すると、KeyErrorを発生させる代わりに0を返します。通常のdictとの便利な違いです。

from collections import Counter
c = Counter('banana')
print(c['a'])
print(c['z'])

出現頻度の高い項目

.most_common(n)は、上位n個の項目を(項目、カウント)のペアとして返します。出現頻度の高い順に並びます。

from collections import Counter
words = ['red', 'blue', 'red', 'green', 'blue', 'red']
c = Counter(words)
print(c.most_common(2))

頻度順にすべての項目を取得する

引数なしで.most_common()を呼び出すと、すべての項目を頻度順に取得できます。

from collections import Counter
c = Counter('aabbbcccc')
print(c.most_common())

カウントを更新する

.update()メソッドは、通常のdictのように既存の値を置き換えるのではなく、別のイテラブルからカウントを追加します。

from collections import Counter
c = Counter(['a', 'b'])
c.update(['a', 'a', 'c'])
print(c)

辞書からカウントする

項目とカウントの対応を表すマッピングからCounterを直接作成することも、キーワード引数を使って作成することもできます。

from collections import Counter
c = Counter(apples=3, pears=2)
print(c)
print(c['apples'])

2つのCounterを加算する

+演算子は、対応するキーの値を合計して2つのCounterを結合します。合計が0以下になる項目は削除されます。

from collections import Counter
a = Counter(x=2, y=1)
b = Counter(x=1, z=4)
print(a + b)

カウントを減算する

-演算子はカウントを減算し、結果が正の項目だけを残します。負の値も許可したい場合は.subtract()を使います。

from collections import Counter
a = Counter(x=5, y=2)
b = Counter(x=3, y=4)
print(a - b)

すべてのカウントの合計

sum(c.values())ですべてのカウントを合計します。これにより、カウントした項目の総数が分かります。

from collections import Counter
c = Counter('mississippi')
print('Total letters:', sum(c.values()))

要素を列挙する

.elements()は、各要素をそのカウント回数だけ繰り返すイテレーターを返します。list()で囲むと、すべての要素を確認できます。

from collections import Counter
c = Counter(a=2, b=1, c=3)
print(sorted(c.elements()))

クイックチェック

c = Counter('hello')のとき、c['x']は何を返しますか?

復習:Counter

Counterについて、次のことを学びました:

  • 文字列を含む任意のイテラブルから項目をカウントします。
  • 存在しないキーに対して、エラーではなく0を返します。
  • .most_common(n)で項目を出現頻度順に並べられます。
  • カウント処理に+、-、.update()、.elements()を使えます。
from collections import Counter
votes = ['yes', 'no', 'yes', 'yes', 'no']
print(Counter(votes).most_common(1))

よくある質問

「Counter」レッスンは無料ですか?

はい。「Counter」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Python Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Python Academyコースには全4レッスンが含まれています。

「Counter」で何を学びますか?

項目を簡単に数えます ブラウザで直接実行するハンズオンコードでPython Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Python Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのPython Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「Counter」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このPython Academyレッスンでコードを書いて実行できますか?

はい。すべてのPython Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Counter
  2. defaultdict
  3. deque
  4. namedtupleとOrderedDict
← Python Academyに戻る