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

替换 a 的切片为 b 的内容。

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

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

相关文章:

java - (Java) 如何从列表中以字符串或字符串数​​组的形式返回对象?

python - 值错误 : needs to have a value for field "" before this many-to-many relationship can be used

python - Flask-WTForms使用jQuery移至下一个表单字段

python - Django Forms - 动态选择字段过滤

python - 使用列表理解替换字符串

python - 在python中添加分隔符

arrays - golang 中的 0 长度 slice 和数组

python - 从下标符号构建切片对象

python - 将张量分配给多个切片

python - 如何在 Win 7 64 位上安装 python-Levenshtein 或其他 C/C++ 包