python - 以下代码需要切片来替换列表中的所有项目?

标签 python slice

def square_please(some_list):
some_list[:] = [x**2 for x in some_list]

您好,为什么我们的代码中需要 [:] 才能用其平方值替换列表中的每个项目?我根本不明白为什么我们需要切片。

我认为因为我们将一个新列表分配给 some_list,它会覆盖以前的列表,类似于我们有以下内容:

list1 = [3,4,5]
list1 = [6,7,8]

最佳答案

如果您使用 [:]它将创建一个全新的列表并将其分配给 some_list以及之前对 some_list 的任何引用不会被修改。在某些情况下,这不是问题。如果您返回some_list它将返回一个新列表,并且可以使用平方列表和非平方列表,但有时您想要就地更改值,这就是您要执行的操作。请参阅this问题。

关于python - 以下代码需要切片来替换列表中的所有项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61905559/

相关文章:

list - 在 Go 列表中按值删除元素

pointers - 指向空接口(interface)类型断言的指针

python - 强制乘法使用 __rmul__() 而不是 Numpy 数组 __mul__() 或绕过广播

javascript - CORS 请求在 Firefox 中不起作用,但在 Chrome 和 Safari 中起作用

python - 导入错误: No module named SQLAlchemy with Anaconda

python - 将数字日期转换为字典中的单词

python - 如何在 python 中使用 Selenium WebDriver 截取部分截图?

带有重复标签的xml解析

pointers - slice 结构行为

python - 将列表切片为有序 block