Day 69collections.Counterの基本
Pythonコード
1from collections import Counter2 3class Fruit:4 def __init__(self, name):5 self.name = name6 7# フルーツのリストを作成8fruits = [Fruit('リンゴ'), Fruit('バナナ'), Fruit('リンゴ'), Fruit('オレンジ'), Fruit('バナナ'), Fruit('バナナ')]9 10# フルーツの名前をリストに抽出11fruit_names = [fruit.name for fruit in fruits]12 13# Counterを使用してフルーツの出現回数を数える14fruit_counts = Counter(fruit_names)15 16# 出現回数を表示17for fruit, count in fruit_counts.items():18 print(f'{fruit}: {count}')
解説
- 行1: collectionsモジュールからCounterクラスをインポートします。Counterは、リスト内の各要素の出現回数を数えるために使用します。インポートとは、別のファイルに定義された関数やクラスを自分のファイルで使用できるようにすることです。
- 行3〜6: Fruitクラスを定義します。このクラスは、フルーツの名前を保持するために使用されます。__init__メソッドは、クラスのインスタンスが作成されたときに呼ばれます。
- 行8: フルーツのリストを作成します。このリストには、Fruitクラスのインスタンスが含まれます。
- 行11: リスト内包表記を使用して、フルーツの名前をリストに抽出します。リスト内包表記は、リストの作成を簡単にします。
- 行14: Counterを使用して、フルーツの名前の出現回数を数えます。Counterは、辞書のようなオブジェクトで、各キーに対応する値がその出現回数になります。
- 行17〜18: 出現回数を表示します。items()メソッドは、Counterオブジェクトのキーと値のペアを返します。print()関数は、指定された値を画面に表示します。
次に試してみよう
- Counterを使用して、文字列内の各文字の出現回数を数えてみましょう。
- リスト内包表記を使用して、リストの要素をフィルタリングしてみましょう。
- Fruitクラスに、フルーツの価格や重量などの追加の属性を定義してみましょう。