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列表中的一个切片字符,但是,如果后面有一个数字:它将从该索引或该索引中切片,具体取决于:。前面或后面的位置。第一条语句将生成第一条语句的不必要副本。第二个没有。