0

重複の可能性:
リストをチャンクで反復処理するための最も「pythonic」な方法は何ですか?

これが私の質問の例です:

l = [1,2,3,4,5,6,7,8,9]

次に、groupsize = 3の場合、次のようにします。

l1 = [(1,2,3),(4,5,6),(7,8,9)]

groupsize = 4の場合、

l1 = [(1,2,3,4),(5,6,7,8),(9,)]

ありがとう。

4

1 に答える 1

2
In [1]: def group(l, size):
   ...:     return [tuple(l[i:i+size]) for i in range(0, len(l), size)]
   ...: 

In [2]: l = [1,2,3,4,5,6,7,8,9]

In [3]: group(l, 3)
Out[3]: [(1, 2, 3), (4, 5, 6), (7, 8, 9)]

In [4]: group(l, 4)
Out[4]: [(1, 2, 3, 4), (5, 6, 7, 8), (9,)]

ジェネレーターが必要な場合は、この回答(およびこれ)に相当するものに変更[]して取得できます(タプルへの変換を除く)。()

于 2013-01-28T17:48:17.513 に答える