Python:为什么当"list"引用相同的东西时使用"list [:]"?

Dha*_*mit 12 python slice

考虑一个清单>>> l=[1,2,3].

>>> l[:]>>> l打印与以前相同的东西时使用有什么好处?

谢谢.

Jos*_*Lee 35

它创建一个(浅)副本.

>>> l = [1,2,3]
>>> m = l[:]
>>> n = l
>>> l.append(4)
>>> m
[1, 2, 3]
>>> n
[1, 2, 3, 4]
>>> n is l
True
>>> m is l
False
Run Code Online (Sandbox Code Playgroud)

  • +20用于这个基本的东西(在此之前已经被提到过,已经在使用它的其他一百个问题中进行了解释,在官方教程中,大多数是其他的,等等)... (6认同)
  • +1:他们**根本不是**. (5认同)
  • @delnan查找副本并投票以关闭. (2认同)

rec*_*ive 12

l[:]被称为切片表示法.它可以用于仅提取列表中的一些元素,但在这种情况下,边界被省略,因此返回整个列表,但由于切片,这实际上是对不同列表的引用,而不是l包含相同的元素.该技术通常用于制作浅拷贝或克隆.

http://docs.python.org/tutorial/introduction.html#lists