Effective Python:第11条 学会对序列做切片

Python有这样一种写法,可以从序列里面切割(slice)出一部分内容,让我们能够轻松地获取原序列的某个子集合。凡是实现了__getitem__与__setitem__这两个特殊方法的类都可以切割。

最基本的写法是用somelist[start:end]这一形式来切割,左闭右开:也就是从start开始一直取到end这个位置,但不包含end本身的元素。

a = "hello world! are you ok!"
print(a[0:len(a)])
print(a[5:])
print(a[:10])
print(a[-len(a):])
print(a[1:10:2])  # 2代表步长,隔多久进行截取
print(a[:])  # 创建副本,适用于可变类型循环时且长度发生变更
print(a[::-1])  # 翻转

# 针对可变类型
b = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
b[0:5] = [44]  # 可用于改变列表结构,右侧需要是一个可迭代类型
print(b)
c, d = b[3:5]  # 可用于unpacking,左右个数需相等
print(c, d)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值