a [:]和a的区别

Dou*_*ert 2 python list slice

我知道变量的赋值a[:]a赋值的区别,也知道切片赋值的特殊情况。

假设,

a=[1,2,3,4,5]  
Run Code Online (Sandbox Code Playgroud)

以下两个语句有什么区别?

b=a[:]+[6,7,8,9,10] #1   
b=a+[6,7,8,9,10] #2  
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,ab最终都具有相同的值。

我已提及以下链接-

何时何地在python中使用[:]

了解切片符号

Python为什么会在[=]上使用[:]

他们没有在这样的表达中提到他们的区别。

AKX*_*AKX 5

a[:] 抓取列表的整个部分–在这种情况下,由于您要分配给新列表,它的效果没有区别(尽管它确实复制了列表,所以扩展速度较慢)。

# create the list.
>>> a = [1, 2, 3, 4, 5]
# see its address
>>> id(a)
4349194440
# see the (different) address of a copy
>>> id(a[:])
4350338120
# reassign the entire list using slice syntax
>>> a[:] = [5, 6, 7]
>>> a
[5, 6, 7]
# still the same first ID though
>>> id(a)
4349194440
>>>
Run Code Online (Sandbox Code Playgroud)