2024-04-26 14:23:30 发布
网友
我试图找到回文,所以我将列表复制到另一个变量,但是当我使用reverse函数时,两个变量都会反转。为什么会这样?你知道吗
reverse
我可以使用循环并从相反的顺序逐个追加,但我真的想知道reverse函数为什么这样工作。你知道吗
arr = list(input()) ar = arr ar.reverse() print(arr, ar) print("YES" if arr == ar else "NO"
我希望能找到回文。你知道吗
这是因为arr.reverse()在适当的位置反转列表(另请参见help(list.reverse))。你知道吗
arr.reverse()
help(list.reverse)
也就是说,您需要制作列表的副本,然后反转:
arr = list(input()) ar = arr.copy() ar.reverse() print(arr, ar) print("YES" if arr == ar else "NO")
(注意我如何将ar = arr更改为ar = arr.copy())
ar = arr
ar = arr.copy()
您可以使用id函数自己“诊断”这个问题,该函数为每个对象返回一个唯一的标识符:
id
>>> arr = list("foo bar beep boop") >>> id(arr) 4343238976 >>> ar = arr >>> id(ar) 4343238976 >>> copied = arr.copy() >>> id(copied) 4341383968
注意id(ar)和id(arr)如何返回相同的数字(本例中是4343238976),这意味着它们指向相同的对象。同时id(copied)返回一个不同的数字,这意味着它是一个不同的对象。你知道吗
id(ar)
id(arr)
id(copied)
这是因为
arr.reverse()
在适当的位置反转列表(另请参见help(list.reverse)
)。你知道吗也就是说,您需要制作列表的副本,然后反转:
(注意我如何将
ar = arr
更改为ar = arr.copy()
)您可以使用
id
函数自己“诊断”这个问题,该函数为每个对象返回一个唯一的标识符:注意
id(ar)
和id(arr)
如何返回相同的数字(本例中是4343238976),这意味着它们指向相同的对象。同时id(copied)
返回一个不同的数字,这意味着它是一个不同的对象。你知道吗相关问题 更多 >
编程相关推荐