2024-10-02 08:18:10 发布
网友
我应该写一个函数,它得到一个列表并旋转它几次(旋转的次数是给定的)
def rotate1(lst): print(lst[-1:]+lst[:-1]) def rotatek_v1(lst,k): for i in range(0,k): rotate1(lst) print(lst)
出于某种原因,在第二个函数中,它只旋转一次,但我需要它旋转k次(我需要它运行函数rotate1k次),我应该修复什么?你知道吗
谢谢
正确的代码应该是-
def rotate1(lst): print(lst[-1:]+lst[:-1]); def rotatek_v1(lst,k): for i in range(0,k): rotate1(lst); print(lst);
您没有修改任何值,只是在打印,因此每次迭代都会得到相同的值。必须使用return语句,以便使用结果并将其赋给变量,如:
return
def some_function(): return 100 some_var = some_function()
将其应用于您的案例:
def rotate1(lst): return (lst[-1:] + lst[:-1]) def rotatek_v1(lst, k): for i in range(0, k): lst = rotate1(lst) print lst
演示:
>>> rotatek_v1([1, 2, 3, 4, 5], 6) >>> [5, 1, 2, 3, 4] [4, 5, 1, 2, 3] [3, 4, 5, 1, 2] [2, 3, 4, 5, 1] [1, 2, 3, 4, 5] [5, 1, 2, 3, 4]
你需要重新赋值
def rotate1(lst): return lst[-1:]+lst[:-1] # here def rotatek_v1(lst,k): for i in range(0,k): lst = rotate1(lst) # and here print(lst)
正确的代码应该是-
您没有修改任何值,只是在打印,因此每次迭代都会得到相同的值。必须使用
return
语句,以便使用结果并将其赋给变量,如:将其应用于您的案例:
演示:
你需要重新赋值
相关问题 更多 >
编程相关推荐