我在leetcode上做这个问题,为什么我打印了正确的结果,但没有得到leetcode中的正确答案?看起来如果我这么做了
nums[:]=list(endArray+frontArray)然后它就会起作用了。我想是列表分配的问题吧?

发布于 2021-08-05 03:00:08
您已经发现了变量和它们的值之间的区别。Python中的变量总是指向一个值。它引用了一个,但没有包含它。
nums = list(endArray+frontArray)这段代码创建了一个新的、不相关的列表,并将该列表分配给nums。旧的列表仍然在内存中的某个未修改的地方。您刚刚创建了一个新变量,并将其分配给一个本地变量,该变量无论如何都会被删除。
nums[:] = list(endArray+frontArray)这是对当前行的所有位置([:])的分配。我们不会创建一个新的列表;我们会覆盖现有列表中的所有值。任何引用前面列表的人都会看到本例中的变化。
https://stackoverflow.com/questions/68660052
复制相似问题