def fun1(input):
input.reverse()
return input
这适用于fun1([1,2,3])
但是当我想做这样的事情时
input = [p,q,r]
print fun1(input)
print input
对于上述两个语句的输出都是[r,q,p]
,但我希望它保持[p,q,r]
。
答案 0 :(得分:1)
使用input
作为名称会影响内置input
函数,因此这不是一个好主意。
为了保持input_
不变,您可以修改它的副本,而不是直接修改它:
def fun1(input_):
input_copy = input_[:] # A copy of input via slicing
input_copy.reverse()
return input_copy # return the mutated copy of your input
您还可以使用显式copy
函数制作浅表副本:
input_copy = input_.copy()
您的input_
不会被修改,副本上的更改也不会传播到原始input_
答案 1 :(得分:0)
为反转列表分配新的局部变量并将其返回:
def fun1(input):
output = input[:]
return output.reverse()