【发布时间】:2015-12-18 15:41:44
【问题描述】:
给定一个输入列表
l = [1 2 3 4 5 6 7 8 9 10]
组大小 grp 和 step step
grp = 3; step = 2
我想返回一个列表。注意最后的重复
1 2 3
3 4 5
5 6 7
7 8 9
9 10 1
如果
grp= 4; step = 2
输出应该是
1 2 3 4
3 4 5 6
5 6 7 8
7 8 9 10
这是我想出的代码,它不做循环的事情。 但想知道是否有更小或更简单的解决方案
def grouplist(l,grp,step):
oplist = list()
for x in range(0,len(l)):
if (x+grp<len(l)):
oplist.append(str(l[x:x+grp]))
return oplist
【问题讨论】:
-
对我来说这两个例子有冲突。请为 step=1 显示一个。还是应该是示例 1?
-
@Pynchia 这两个例子并不冲突。他们都有
step=2,所以第二行的第一个数字应该是3。 -
为什么对于 grp 4 step 2 我们回绕到 1 而不是 10?
-
好的,最好解释一下步骤是什么(从组开始的偏移量,我现在收集)
-
在@wim 评论顶部为什么第二个示例中没有第五行?