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 回答