Python 表达式中a[:]和a的差异

Python 表达式中a[:]和a的差异,python,list,slice,Python,List,Slice,我知道[:]和变量赋值的区别,也知道切片赋值的特殊情况 假设 a=[1,2,3,4,5] 以下两种说法的区别是什么 b=a[:]+[6,7,8,9,10] #1 b=a+[6,7,8,9,10] #2 在这两种情况下,a和b的末尾都具有相同的值 我已转介以下连结- 他们没有提到表达式中的差异。a[:]获取列表的完整部分–在这种情况下,它没有任何效果上的差异,因为您正在分配给一个新列表,尽管它确实复制了列表,所以缩放速度较慢 创建列表。 >>>a=[1,2,3,4,5] 看到

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

假设

a=[1,2,3,4,5]  
以下两种说法的区别是什么

b=a[:]+[6,7,8,9,10] #1   
b=a+[6,7,8,9,10] #2  
在这两种情况下,a和b的末尾都具有相同的值

我已转介以下连结-

他们没有提到表达式中的差异。

a[:]获取列表的完整部分–在这种情况下,它没有任何效果上的差异,因为您正在分配给一个新列表,尽管它确实复制了列表,所以缩放速度较慢

创建列表。 >>>a=[1,2,3,4,5] 看到它的地址了吗 >>>艾达 4349194440 查看副本的不同地址 >>>艾达[:] 4350338120 使用切片语法重新分配整个列表 >>>a[:]=[5,6,7] >>>a [5, 6, 7] 还是第一个身份证 >>>艾达 4349194440 >>> 在python列表中,切片a[:]和a的唯一区别在于它们的id,因为a[:]正在另一个地址位置制作a的精确副本

a=[1,2,3,4,5] 
b=a[:]+[6,7,8,9,10] #1  
b=a+[6,7,8,9,10] #2 
同样考虑到python不可变字符串切片a[:]和a没有区别。两者都指向相同的地址位置

a=[1,2,3,4,5] 
b=a[:]+[6,7,8,9,10] #1  
b=a+[6,7,8,9,10] #2 
案例1 a[:]表示您正在切片序列,序列可以是字符串、列表等任何形式。基本上,这被理解为[start:end:steps],其中start-end是我们的索引值,steps是跳跃数。如果我们不提供任何值,那么默认情况下,start=0,end=sequence的最后一个元素,steps=1。因此,在您的例子中,您只需要获取列表a的全部元素

案例2 a,它只是指整个a

结论:在[:]的帮助下,您可以获得所需的元素

示例->>


我希望它可以帮助您。

[:]选择列表中的所有值,它是python列表中的一个切片字符,但是,如果后面有一个数字:它将从该索引或该索引中切片,具体取决于:。前面或后面的位置。第一条语句将生成第一条语句的不必要副本。第二个没有。