一、简介
Python与Go中对序列都支持[start : end : step]的访问方式,规则是对[start, end)这个左闭右开的区间,按step的跨度进行取值。
二、理解
step可以理解为长度,(end-start)是一条线段的总长度。所以,[start : end : step]就是对start-end的这条线段按step进行划分,取划分后得到的端点。而每条线段有两个端点,中间的端点重叠,所以,取得的元素个数是(end-start)/step+1。不过,对于整除的情况,因为end的值不能取,所以元素个数为(end-start)/step。
如:
list(range(0, 20, 3))
# 结果
[0, 3, 6, 9, 12, 15, 18] # 长度为(20-0)/3+1
list(range(0, 20, 5))
# 结果
[0, 5, 10, 15] #长度为(20-0)/5