Pythonには辞書 (dict)というキー・バリュー型の便利で強力な変数が備わっています。他の言語では「連想配列」と呼ばれるものです。今回は辞書を分割する方法を解説します。
辞書の分割
辞書を分割するには、itertools.islice()
メソッドを使います。以下にその使用例を示します。
from itertools import islice
def dict_chunks(data, size):
it = iter(data)
for i in range(0, len(data), size):
yield {k:data[k] for k in islice(it, size)}
data = { i:i**2 for i in range(10) }
chunks = dict_chunks(data, size=3)
上の例では、chunks
変数に3要素ごとに分割後の辞書(ジェネレータ)が入ります。作られたジェネレータで以下のようにfor文を回したり、1つずつ next()
することでも分割された要素を得られます。
count = 0
for c in chunks:
print(f"chunk {count}: {c.keys()}")
count += 1
出力結果:
chunk 0: dict_keys([0, 1, 2])
chunk 1: dict_keys([3, 4, 5])
chunk 2: dict_keys([6, 7, 8])
chunk 3: dict_keys([9])
このように、Pythonの辞書を分割する方法は非常に簡単で、巨大な辞書を扱うときや、通信に制約がある時などに活用できます。