python分片

分片

分片操作是从序列A中获取一个子序列B。序列A可以称为父序列。从A中获取B,需要制定B在A中的开始索引和结束索引,因此,分片操作需要制定两个索引。
首先我们先举个例子,如:

word = 'Hello Python!'
print(word[1:4])		//ell

学过数组,我们都知道,元素的索引是从0开始的,所以上面的例子开始位置从元素e开始,接着在o处结束,但是我们会发现,为什么输出的结果里面没有元素o呢,这是因为这里实行的是左闭右开的策略,就好比for循环里面的range一样,取不到最后一个元素,还有就是,分片的连个元素之间要用冒号(:)隔开。

我们再举些例子加深下印象吧

num = [1,2,3,4,5,6,7,8,9]
print(num[0:9])					//[1, 2, 3, 4, 5, 6, 7, 8, 9]
print(num[0:])					//[1, 2, 3, 4, 5, 6, 7, 8, 9]
print(num[:9])					//[1, 2, 3, 4, 5, 6, 7, 8, 9]
print(num[:])					//[1, 2, 3, 4, 5, 6, 7, 8, 9]
print(num[3:5])					//[4, 5]
print(num[0:-5])				//[1, 2, 3, 4]
print(num[-3:-1])				//[7, 8]

从上面我们又可以看到,输出所有元素有三种方式。开始索引和结束索引也可以是负数,表示从列表的最后一个元素开始索引。

print(num[-1:-3])				//[]

python语言规定,如果结束索引比开始索引出现晚,那么就会返回空序列。在这里索引-3比索引-1出现晚。

设置步长

在对序列分片时,默认的步长为1,也就是说获取的子序列的元素都是相邻的,如果想要获取不相邻的元素,就要指定步长。

num = [1,2,3,4,5,6,7,8,9]
print(num[::])					//[1, 2, 3, 4, 5, 6, 7, 8, 9]
print(num[0:9:2])				//[1, 3, 5, 7, 9]
print(num[::2])					//[1, 3, 5, 7, 9]
print(num[1:9:2])				//[2, 4, 6, 8]
print(num[1::2])				//[2, 4, 6, 8]
print(num[::-1])				//[9, 8, 7, 6, 5, 4, 3, 2, 1]

开始索引、结束索引和步长都是可以省略的。
步长不能为0,但可以是负数。如果步长为0,就会抛出异常;如果步长是负数,分片会从序列的右侧开始,这是开始索引要大于结束索引。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值