Python 将数组的每五个元素分配给一个块

Python 将数组的每五个元素分配给一个块,python,python-2.7,loops,Python,Python 2.7,Loops,我在一个数组中有15个元素,我想将其中的每五个元素分别分配给一个块。这些要素包括: elements=["a",'b','c','d','e','f','g','h','i','j','k','l','m','n','o'] 我想说的是,前5个元素属于块1,后5个元素属于块2,依此类推。我需要在一个循环结构中完成它,因为稍后,我需要使用每个块的信息来完成一个特殊的任务。由于我是python新手,我不知道如何编写它。任何建议都将不胜感激。您只需使用列表理解即可: result = [elemen

我在一个数组中有15个元素,我想将其中的每五个元素分别分配给一个块。这些要素包括:

elements=["a",'b','c','d','e','f','g','h','i','j','k','l','m','n','o']

我想说的是,前5个元素属于块1,后5个元素属于块2,依此类推。我需要在一个循环结构中完成它,因为稍后,我需要使用每个块的信息来完成一个特殊的任务。由于我是python新手,我不知道如何编写它。任何建议都将不胜感激。

您只需使用列表理解即可:

result = [elements[i:i+5] for i in range(0,len(elements),5)]
这将产生:

>>> result
[['a', 'b', 'c', 'd', 'e'], ['f', 'g', 'h', 'i', 'j'], ['k', 'l', 'm', 'n', 'o']]
或更通用:

def blockify(elements,n=5):
    return [elements[i:i+n] for i in range(0,len(elements),n)]
然后用
blockify(elements,5)
调用它


我们要做的是创建一个
范围
,范围从
0
len(elements)
(elements)(elements的长度)),并跳
5
(或者在一般情况下是
n
)。现在,对于这些步骤中的每一步,我们向结果中添加一个切片
元素[i:i+5]

循环遍历所有元素并将索引除以5(楼层分割运算符/)
除法的结果是组数。

您事先知道元素吗?为什么不把它们硬编码在一起呢?是的,我事先就知道这些元素,我从excel文件中读取它们。我不能硬编码它们,因为实际上它们是1500个元素,因此我有300个块。我在这里写了15个元素,因为如果我学会了如何在循环中写15个元素,我也可以用1500个元素来点它。