こんにちは。
野中やすおです。
Pythonのライブラリであるmore-itertoolsのchunkedの使い方について紹介します。
more-itertoolsとは
more-itertoolsは、Pythonの標準ライブラリであるitertoolsを拡張したライブラリになります。pipでインストールすることができます。
1 |
<span style="font-family: Lato;"><code>pip install more-itertools</code></span> |
ドキュメントはこちらから
Python documentation
このモジュールは イテレータ を構築する部品を実装しています。プログラム言語 APL, Haskell, SML からア…
chunkedとは
今回紹介するchunkedは、more-itertoolsの中のリストなどのiterableを操作するイテレータの1つになります。
chunkedを使うことでiterableを一定の数ごとに分割することができます。
1 2 3 4 |
<span style="font-family: Lato;"><code>from more_itertools import chunked l = range(20) print(list(chunked(l, 10))) # [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [10, 11, 12, 13, 14, 15, 16, 17, 18, 19]]</code></span> |
chunkedした後のtypeを調べて見ると、イテレータオブジェクトになっています。
1 2 |
<span style="font-family: Lato;"><code>print(type(chunked(l, 10))) # <class 'callable_iterator'></code></span> |
for文で分割したものを取り出すこともできます(再度リスト化する必要があることに注意してください!)。
1 2 3 4 5 6 7 8 9 |
<span style="font-family: Lato;"><code>l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] chunked_list = list(chunked(l ,2)) for i in chunked_list: print(i) # [1, 2] # [3, 4] # [5, 6] # [7, 8] # [9, 10]</code></span> |
以上、参考になる方がいらっしゃれば幸いです!