与前面介绍的字符串操作类似的是,列表和元组同样也可使用索引获取中间一段,这种用法被称为slice(分片或切片)。slice的完整语法格式如下:
[start:end:step]
上面语法中start、end两个索引值都可使用正数或负数,其中负数表示从倒数开始。该语法表示从start索引的元素开始(包含),到end索引的元素结束(不包含)的所有元素一这和所有编程语言的约定类似。
step表示步长,因此step 使用负数没有意义。
下面代码示范了使用start、end 获取元组中间一段的用法
# !/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2024/01
# @Author : Laopi
tupledemo = ('软件测试划水老师傅',18,89.5,'测试经理',-56)
#访问第2个到第4个(不包含第4个)
print(tupledemo[1:3])#(18, 89.5)
#访问从倒数第3个到倒数第1个(不包含第1个)
print(tupledemo[-3:-1])#(89.5, '测试经理')
#访问从第2个到倒数第2个
print(tupledemo[1:-2])#(18, 89.5)
# 访问从倒数第3个到倒数第5个
print(tupledemo[-3:4])#(89.5, '测试经理')
如果指定step参数,则可间隔step个元素再取元素。
# !/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2024/01
# @Author : Laopi
tupledemo = ('软件测试划水老师傅',18,89.5,'测试经理',-56)
#如果指定step参数,则可间隔step个元素再取元素
tupledemo1 = (1,2,3,4,5,6,7,8,9,10)
# 访问从第4个到第9个、间隔为2的所有元素
print(tupledemo1[3:9:2])#(4, 6, 8)
# 访问从第3个到第9个、间隔为3的所有元素
print(tupledemo1[2:9:3])#(3, 6, 9)
# 访问从第3个到倒数第2个、间隔为2的所有元素
print(tupledemo1[2:-2:2])#(3, 5, 7)