我正在尝试运行一个代码,将列表的值向右移动三个点。例如,我有一个列表 [1,2,3,-3,15,6,71,42] 并且我想让输出 [-3,15,6,71,42, 1,2,3] ,但程序当前的输出是 [-3, 15, 6, 71, 42, 8, 8, 8]。我找不到错误,但教授希望我只更改一行代码来修复错误。所以错误一定不难发现。除了我似乎找不到它:D
请帮忙!
def foo1(values):
return values[0]
def foo2(values):
for i in range(1,len(values)):
values[i-1] = values[i]
def foo3(values,c):
values[len(values)-c] = len(values)
def main():
values = [1,2,3,-3,15,6,71,42]
k = 3
for r in range(k):
a = foo1(values)
foo2(values)
foo3(values,a)
print("Here is the shifted list to the left for " + str(k) + " time:" )
print(values)
main()Run Code Online (Sandbox Code Playgroud)
您的解决方案过于复杂 - 无需具有三个不同的功能。假设您有一个名为 的列表data,您可以简单地执行以下操作:
for i in range(number_of_shifts):
data.append(data.pop(0))
Run Code Online (Sandbox Code Playgroud)