collections
コレクションズ(標準ライブラリ)
意味 特殊なデータ構造
collectionsとは?
Pythonの標準的なリストや辞書以外にも、特殊な機能を持ったデータ構造を使いたい場合があります。collectionsモジュールは、そんな便利なデータ構造をたくさん用意しています。例えば、要素の出現回数を数えるCounterや、要素の追加順序を保持するOrderedDictなどがあります。
collectionsの具体的な使い方
要素の数え上げと最頻値の取得
from collections import Counter
# テキストデータ
text = "私はPythonが好きです。Pythonは簡単で強力な言語です。私はPythonでプログラミングを学んでいます。"
# 単語の出現回数をカウント
words = text.split()
word_counts = Counter(words)
print("単語の出現回数:")
for word, count in word_counts.items():
print(f"{word}: {count}回")
# 最も頻出する単語を取得
most_common = word_counts.most_common(3)
print("\n最も頻出する3つの単語:")
for word, count in most_common:
print(f"{word}: {count}回")
👇出力結果
単語の出現回数:
私は: 2回
Pythonが: 1回
好きです。Pythonは: 1回
簡単で: 1回
強力な: 1回
言語です。私はPythonでプログラミングを: 1回
学んでいます。: 1回
最も頻出する3つの単語:
私は: 2回
Pythonが: 1回
好きです。Pythonは: 1回
この例では、collections.Counterを使用してテキスト内の単語の出現回数を数え、最も頻出する単語を特定しています。Counterは辞書のようなオブジェクトで、要素の出現回数を簡単に数えることができます。また、most_commonメソッドを使用すると、最も頻出する要素を簡単に取得できます。
双方向キューの使用例
from collections import deque
# 双方向キューの作成
queue = deque(['Task 1', 'Task 2', 'Task 3'])
print("初期のキュー:", queue)
# 先頭に要素を追加
queue.appendleft('New Task')
print("先頭に追加後:", queue)
# 末尾に要素を追加
queue.append('Last Task')
print("末尾に追加後:", queue)
# 先頭の要素を取り出す
first_task = queue.popleft()
print(f"取り出したタスク: {first_task}")
print("先頭から取り出し後:", queue)
# 末尾の要素を取り出す
last_task = queue.pop()
print(f"取り出したタスク: {last_task}")
print("末尾から取り出し後:", queue)
👇出力結果
初期のキュー: deque(['Task 1', 'Task 2', 'Task 3'])
先頭に追加後: deque(['New Task', 'Task 1', 'Task 2', 'Task 3'])
末尾に追加後: deque(['New Task', 'Task 1', 'Task 2', 'Task 3', 'Last Task'])
取り出したタスク: New Task
先頭から取り出し後: deque(['Task 1', 'Task 2', 'Task 3', 'Last Task'])
取り出したタスク: Last Task
末尾から取り出し後: deque(['Task 1', 'Task 2', 'Task 3'])
この例では、collections.dequeを使用して双方向キュー(両端キュー)を実装しています。dequeは両端から効率的に要素の追加と削除ができるデータ構造です。appendleftとappendで両端に要素を追加し、popleftとpopで両端から要素を取り出すことができます。これは、タスク管理やキャッシュの実装など、両端からの操作が必要な場面で特に有用です。
collectionsに関するよくある質問
collectionsが学べる書籍の紹介
「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、Pythonのcollectionsやre.match、datetime、unittest、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。
よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。
HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。
Pythonを学べる「プログラミング単語帳」アプリ
プログラミング単語帳がアプリになりました!Pythonはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。
収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。
いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。
2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!
2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!