按编号分割Python列表
我是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
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中提供感谢评论。请阅读这里的其他表达感激的方式。。。