def revv(L,k):
return [w for i in (L[s:s+k][::-1] for s in range(0,len(L),k)) for w in i]
for gr in range(2,8):
print(gr, revv([1,2,3,4,5,6,7,8,9,10,11],gr))
def reverseInGroups(A,K):
N = len(A)
arr1 = []
for i in range(0, N, K):
arr1.extend(A[i : i+K][::-1])
return arr1
print(reverseInGroups([1,2,3,4,5], 3))
def reverse(l, n):
result = []
for i in range(0, len(l)-1, n):
for item in reversed(l[i:i+n]):
result.append(item)
for item in reversed(l[i+n:]):
result.append(item)
return result
似乎无法重现您的
'List index out of range'
错误,但您的逻辑有错误:印刷品:
您可以修复此问题,并通过将其打包到列表中使其变小:
要获得:
这将实现您试图实现的目标:
有趣的是,问题中的代码实际上在示例中起作用,但它不是通用的。它工作的情况是N=2*K-1(尽管它不工作,但元素的顺序错误,而不是索引器)
您也可以尝试以下方法:
相关问题 更多 >
编程相关推荐