按编号分割Python列表

按编号分割Python列表,python,Python,我是Python新手,有没有解决以下问题列表切片的最佳方法 我有一个叫 result = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26] 我想将上面的列表分成12等分,并期望得到以下输出: new_result = { 'One' : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], 'Two' : [1

我是Python新手,有没有解决以下问题列表切片的最佳方法

我有一个叫

result = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]
我想将上面的列表分成12等分,并期望得到以下输出:

new_result = {
    'One' : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
    'Two' : [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24],
    'Three' : [25, 26]
}

您可以这样做:

result=[1,2,3,4,5,6,7,8,9,10,11,12,13,
14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]
块大小=12
分割结果=[结果[x:x+块大小]
对于范围内的x(0,长度(结果),块大小)]
对于分割结果中的块:
打印(块)
结果:

[1,2,3,4,5,6,7,8,9,10,11,12]
[13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]
[25, 26]
在最后一个for循环中,可以使用正确的关键点创建对象

脚本逻辑很简单:
range
函数有三个参数:

  • 开始(0)
  • 停止(列表的长度)
  • 步骤(每个返回值之间的增量)
在您的情况下,您将拥有:
范围(0,长度(结果),块大小)=[0,12,24]
您只需将初始列表分为以下几部分:

结果[0:0+12]
结果[12:12+12]

结果[24:24+12]
您可以执行以下操作:

result = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]
new_list = [result[n-1:n+11] for n in result[::12]]

new_result = {}
for n in range(1,len(new_list)+1):
    new_result[n] = new_list[n-1]
new_result

{1: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
 2: [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24],
 3: [25, 26]}

new_list
就是带有切片列表的列表。然后,我将其转换为一个名为
new\u result
的字典,从'1'开始

检查
itertools
模块文档,特别是
grouper
函数。这是否回答了您的问题?马可,非常感谢你,非常感谢working@Student_Learner不需要在SO中提供感谢评论。请阅读这里的其他表达感激的方式。。。