我的教授分配了一个项目,在这个项目中我们对一个列表进行了一系列的修改。我们的主要功能如下:
CURRENT_LIST = [1,2,3,4,5]
def main():
data = list(CURRENT_LIST)
shiftRight(data)
print("After shifting data", data)
基本上,我们必须编写函数来处理main()
正在调用的这些函数。我了解如何编写函数。例如,将所有内容向右移动会产生如下结果:
def shiftRight(data:list) -> (list):
data = data[-1:] + data[:-1]
return(data)
我的问题是:有没有可能在不改变提供给我们的main()
函数的情况下做到这一点?据我所知,在调用shiftRight()
之后,我必须再次将其分配给列表。比如:
data = shiftRight(data)
但我们所拥有的主要功能并不是这样设置的。我想知道是否可以在不修改main()
函数的情况下重新分配data
列表。我也希望避免使用全局变量,因为我不认为这是我教授的意图。你知道吗
他有没有在提供给我们的main()
中犯错误?或者真的有办法不使用global variables
和不修改main()
来修改这个列表吗?你知道吗
您可以修改列表的内容,这将更新由变量指针指向的原始列表,而不是创建新列表:
main
函数查看CURRENT_LIST
,生成它的副本,然后调用该副本data
。然后它将data
传递给名为shiftRight
的函数,该函数接受一个列表并对该列表执行右移。此函数原地改变列表并返回None
(如果省略return
语句,则默认情况下会发生这种情况)。然后main
打印结果。你知道吗你的
def shiftRight...
应该放在main
函数之外,就在CURRENT_LIST
赋值之后。您还需要调整shiftRight
函数来改变传递的列表,而不是创建并返回一个新的列表。为此,请尝试pop
和insert
列表方法。你知道吗相关问题 更多 >
编程相关推荐