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值代表的是不被选中的第一个位置.所以endstart区别在于选中的元素(如果step默认为1)

另一点要说的是start或者end可能是个负数,也就是从尾部而不是从头部开始计数.所以:

a[-1]    # 列表最后一个元素
a[-2:]   # 列表最后两个元素
a[:-2]   # 除了最后两个元素剩下的部分

如果你调用的元素多于列表中含有的元素个数,Python也会很友好的表示.例如,如果你请求a[:-2]a只含有一个元素,你得到的是一个空列表而不是一个错误信息.有些时候你可能更希望得到这个错误信息,所以你得意识到上面的事可能发生.