使用步长python列出一个列表项?
发布时间:2020-09-06 12:38:13 所属栏目:Python 来源:互联网
导读:给出一个输入列表 l = [1 2 3 4 5 6 7 8 9 10] 和组大小grp和步骤 grp = 3; step = 2 我想返回一份清单.注意最后的重复 1 2 33 4 55 6 77 8 99 10 1 或者如果 grp= 4; step = 2 输出应该是 1 2 3 43 4 5 65 6 7 87 8 9 10 这是我提出的代码,它没有做循环的事
给出一个输入列表 l = [1 2 3 4 5 6 7 8 9 10] 和组大小grp和步骤 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 解决方法您可以利用xrange或range中的step函数,具体取决于您使用的python版本.然后像这样以列表的长度回绕modimport sys def grouplist(l,step): newlist=[] d = len(l) for i in xrange(0,len(l),step): for j in xrange(grp): newlist.append(l[(i+j)%d]) sys.stdout.write(str(l[(i+j)%d]) + ' ') print l = [1,2,3,4,5,6,7,8,9,10] print grouplist(l,2) 1 2 3 3 4 5 5 6 7 7 8 9 9 10 1 [1,10,1] print grouplist(l,2) 1 2 3 4 3 4 5 6 5 6 7 8 7 8 9 10 9 10 1 2 [1,1,2] (编辑:甘南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |