Python:列表和它们的副本

标签 python list

我无法解释以下行为:

l1 = [1, 2, 3, 4]
l1[:][0] = 888
print(l1) # [1, 2, 3, 4]
l1[:] = [9, 8, 7, 6]
print(l1) # [9, 8, 7, 6]

似乎 l1[:][0] 指的是一个副本,而 l1[:] 指的是对象本身。

最佳答案

这是由 python 的特性引起的,该特性允许您将一个列表分配给另一个列表的一部分,即

l1 = [1,2,3,4]
l1[:2] = [9, 8]
print(l1)

l1的前两个值分别设置为98。同样,

l1[:] = [9, 8, 7, 6]

l1 的所有元素分配新值。


有关分配的更多信息,请参阅 the docs .

关于Python:列表和它们的副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27658877/

相关文章:

python - Python 中的循环效率

PYTHON:访问字典中列表列表的元素

Mysql - 主键以错误的顺序列出

python - CountVectorzier 用于句子标记列表

python - Ubuntu16.04下virtualenv中psutil的安装

Python 错误 : unsupported operand type(s) for +: 'int' and 'NoneType'

Python 更改多直方图上的轴

python - 所有(2 ^ m−2)/2个可能的分区列表方式

c++ - 采访 : Summing numbers in two linked lists

python - 从字典中的键中创建一个列表,考虑到它们的对应值