我知道变量的赋值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)
在这两种情况下,a和b最终都具有相同的值。
我已提及以下链接-
他们没有在这样的表达中提到他们的区别。
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)