python - 分配如何与列表切片一起使用?

标签 python list slice

Python 文档说切片列表会返回一个新列表。
现在,如果返回"new"列表,我有以下与“分配给切片”相关的问题

a = [1, 2, 3]
a[0:2] = [4, 5]
print a

现在输出将是:

[4, 5, 3] 
  1. 返回某物的东西怎么会出现在表达式的左侧?
  2. 是的,我阅读了文档,它说这是可能的,既然切片列表返回一个"new"列表,为什么要修改原始列表?我无法理解其背后的机制。

最佳答案

您混淆了两个使用非常相似语法的不同操作:

1)切片:

b = a[0:2]

这会复制 a 的切片并将其分配给 b

2)切片赋值:

a[0:2] = b

b的内容替换a的切片。

虽然语法相似(我想是设计使然!),但这是两种不同的操作。

关于python - 分配如何与列表切片一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25200873/

相关文章:

python - Pandas 在数据框中用不同颜色突出显示特定数字

python - 尝试将文件名传输到不同的函数

c# - 使用 DataContractJsonSerializer 将 JSON 反序列化为抽象列表

go - gcloud 函数部署 go 运行时错误 "undefined: unsafe.Slice; Error ID: 2f5e35a0"

python - 如何在不使用Aubio的情况下获取.wav文件的平均音高?

python - pandas datetime 和 datetime datetime 之间的区别

python 自定义排序列表 1/2/3/../9/10

python - 计算列表中的元素

go - 仅在 slice 的第一个元素上保留 unsafe.Pointer 并且没有对该 slice 本身的引用是否安全?

pandas - Sns barplot 不对切片值进行排序