gpt4 book ai didi

python - 什么是 [ :] do?

转载 作者:太空狗 更新时间:2023-10-29 19:36:13 25 4
gpt4 key购买 nike

return self.var[:]

那会返回什么?

最佳答案

Python 允许您“切片”各种容器类型;这是获取有序集合的某些子集合的简写符号。例如,如果您有一个列表

foo = [1,2,3,4,5]

而你想要第二个、第三个和第四个元素,你可以这样做:

foo[1:4]

如果您在切片中省略其中一个数字,则它默认为列表的开头。比如

foo[1:] == [2,3,4,5]
foo[:4] == [1,2,3,4]

当然,如果您在切片中省略两个数字,您将得到整个列表!但是,您将得到一份 list 的副本而不是原件;事实上,这是复制列表的标准符号。注意区别:

>>> a = [1,2,3,4]
>>> b = a
>>> b.append(5)
>>> a
[1, 2, 3, 4, 5]
>>>
>>> a = [1,2,3,4]
>>> b = a[:]
>>> b.append(5)
>>> a
[1, 2, 3, 4]

这是因为 b = a 告诉 b 指向与 a 相同的对象,所以附加到 b 与附加到 a 相同。复制列表 a 可以避免这种情况。请注意,这只会深入运行一层间接寻址——如果 a 包含一个列表,例如,您在 b 中附加到该列表,您仍然会更改 一个

顺便说一句,切片有一个可选的第三个参数,它是一个step参数——它可以让你以大于 1 的跳跃在列表中移动。所以你可以写 range (100)[0::2] 对于所有 100 以内的偶数。

关于python - 什么是 [ :] do?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4189446/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com