This question already has answers here:
How do you split a list into evenly sized chunks?
(62个答案)
4年前关闭。
我想将具有固定编号的相邻列表项分组。如
这是我的解决方案
有更有效的实施方法吗?
(62个答案)
4年前关闭。
我想将具有固定编号的相邻列表项分组。如
a = [1, 2, 3, 4, 5, 6]
groupby(a, 2)
的结果是[(1, 2), (3, 4), (5, 6)]
,groupby(a, 3)
的结果是[(1, 2, 3), (4, 5, 6)]
这是我的解决方案
def groupby(a, l):
ret = []
for idx in range(len(a)/l):
ret.append(tuple(a[idx*l:(idx+1)*l:]))
return ret
有更有效的实施方法吗?
最佳答案
>>> a = [1, 2, 3, 4, 5, 6]
>>> groupby = lambda l, n: [tuple(l[i:i+n]) for i in range(0, len(l), n)]
>>> groupby(a, 3)
[(1, 2, 3), (4, 5, 6)]
>>> groupby(a, 2)
[(1, 2), (3, 4), (5, 6)]
>>>
关于python - 在Python中有效地对相邻列表项进行分组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33537742/
10-12 16:45