下面的代码需要切片来替换列表中的所有项目吗?[重复]

问题描述 投票:2回答:1
def square_please(some_list):
some_list[:] = [x**2 for x in some_list]

你好,为什么我们需要在我们的代码中使用[:]来让它用它的平方值替换列表中的每一个项目?我不明白为什么我们需要分片。

我认为,因为我们要给some_list分配一个新的列表,所以它会覆盖之前的列表,类似于我们有以下代码。

list1 = [3,4,5]
list1 = [6,7,8]
python slice
1个回答
2
投票

如果你 使用 [:] 它将创建一个全新的列表并将其分配给 some_list 以及以前提到的任何 some_list 将不会被修改。在某些情况下,这不是一个问题。如果你返回 some_list 它将返回一个新的列表,而且平方和不平方的都可以使用,但其他时候你想在原地改变数值,这就是你要做的。 请看 这个 疑问。

© www.soinside.com 2019 - 2024. All rights reserved.