python切片用法-如何用好Python的切片操作?

小编典典

列举语法允许的可能性:

>>> seq[:] # [seq[0], seq[1], ..., seq[-1] ]

>>> seq[low:] # [seq[low], seq[low+1], ..., seq[-1] ]

>>> seq[:high] # [seq[0], seq[1], ..., seq[high-1]]

>>> seq[low:high] # [seq[low], seq[low+1], ..., seq[high-1]]

>>> seq[::stride] # [seq[0], seq[stride], ..., seq[-1] ]

>>> seq[low::stride] # [seq[low], seq[low+stride], ..., seq[-1] ]

>>> seq[:high:stride] # [seq[0], seq[stride], ..., seq[high-1]]

>>> seq[low:high:stride] # [seq[low], seq[low+stride], ..., seq[high-1]]

当然,如果(high-low)%stride != 0,则终点将比稍低high-1。

如果stride为负,则由于我们递减计数,因此顺序有所更改:

>>> seq[::-stride] # [seq[-1], seq[-1-stride], ..., seq[0] ]

>>> seq[high::-stride] # [seq[high], seq[high-stride], ..., seq[0] ]

>>> seq[:low:-stride] # [seq[-1], seq[-1-stride], ..., seq[low+1]]

>>> seq[high:low:-stride] # [seq[high], seq[high-stride], ..., seq[low+1]]

扩展切片(带有逗号和省略号)通常仅由特殊的数据结构(如NumPy)使用;基本序列不支持它们。

>>> class slicee:

... def __getitem__(self, item):

... return repr(item)

...

>>> slicee()[0, 1:2, ::5, ...]

"(0, slice(1, 2, None), slice(None, None, 5), Ellipsis)"

2020-01-12

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值