Python列表反转功能混乱

用户名
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]
ppwater

正如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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章