def f(x):
x = x[::-1]
list = [1,2,3]
f(list)
print(list)
OUTPUT: [1,2,3]
有人可以解释为什么列表没有反转吗?在下一个示例中,它相反,但是为什么呢?我真的无法理解这种行为。
def f(x):
x[:] = x[::-1]
list = [1,2,3]
f(list)
print(list)
OUTPUT: [3,2,1]
正如juanpa.arrivillaga的评论,
因为
x = x[::-1]
不会就地改变列表。它创建一个新列表并将其分配给局部变量x
。函数终止时,该列表将被丢弃。另一方面,x[:] = whatever
确实改变了列表。实际上,x[:] = x[::-1]
实际上创建了一个新列表,并且该新列表用于更改原始列表
您可以使用内置的n方法.reverse()
来反转列表
mylist = [1,2,3]
mylist.reverse()
print(mylist)
或者您可以使用reversed:
mylist = [1,2,3]
mylist = reversed(mylist)
print(list(mylist))
并尝试避免list
在变量名称中使用内置函数名称。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句