rank | vote | view | answer | url |
---|---|---|---|---|
18 | 2396 | 1241133 | 31 | url |
理解Python切片
对于Python的切片有什么好的资料吗?对我来说理解切片有点难度.它看起来非常有用,但是我还是不能理解它,我正在找有什么好的资料.
非常简单:
a[start:end] # 从start开始到end-1结束
a[start:] # 从start开始直到末尾
a[:end] # 从头部开始直到end结束
a[:] # 复制整个列表
这里还有一个step
值,可以用在上面素有例子的后面:
a[start:end:step] # 按照step步长直到end-1结束,并不是从start一个个遍历到end
重点需要记住的是::end
值代表的是不被选中的第一个位置.所以end
和start
区别在于选中的元素(如果step
默认为1)
另一点要说的是start
或者end
可能是个负数,也就是从尾部而不是从头部开始计数.所以:
a[-1] # 列表最后一个元素
a[-2:] # 列表最后两个元素
a[:-2] # 除了最后两个元素剩下的部分
如果你调用的元素多于列表中含有的元素个数,Python也会很友好的表示.例如,如果你请求a[:-2]
而a
只含有一个元素,你得到的是一个空列表而不是一个错误信息.有些时候你可能更希望得到这个错误信息,所以你得意识到上面的事可能发生.