This question already has answers here:
How do you split a list into evenly sized chunks?
                                
                                    (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