Python 将数组的每五个元素分配给一个块
我在一个数组中有15个元素,我想将其中的每五个元素分别分配给一个块。这些要素包括: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
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个元素来点它。