1. ホーム
  2. パイソン

[解決済み】pythonのリストを他の「サブリスト」、つまりより小さなリストに分割する【重複】。

2022-04-02 10:36:05

質問

Pythonのリストが1000個もあります。こんな感じ。

data=["I","am","a","python","programmer".....]

ここで、len(data)=1003とする。

このリスト(data)のサブセットを、元のリストを100のチャンクに分割して作成したいと思います。つまり、最終的には次のようなものにしたい。

data_chunk1=[.....] #first 100 items of list data
data_chunk2=[.....] #second 100 items of list data
.
.
.
data_chunk11=[.....] # remainder of the entries,& its len <=100, len(data_chunk_11)=3

このタスクを達成するためのpythonicな方法はあるのでしょうか?明らかに私はdata[0:100]などを使うことができますが、それはひどく非ピソニックで非常に非効率的だと仮定しています。

ありがとうございました。

解決方法は?

というと

chunks = [data[x:x+100] for x in range(0, len(data), 100)]

Python 3.xではなく2.xを使用している場合、よりメモリ効率が良くなるように xrange() というように、上記のコードを変更します。

chunks = [data[x:x+100] for x in xrange(0, len(data), 100)]