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の辞書を分割する方法は非常に簡単で、巨大な辞書を扱うときや、通信に制約がある時などに活用できます。

参考

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です