5.1. 概述
何为序列?—— 能连续存放元素的数据容器,而且元素有先后顺序,而且可以通过下标访问,所以我们学过的:列表、元组、字符串,都是序列。
何为切片?—— 从序列中按照指定范围,取出一部分元素,形成一个新的序列的操作。
5.2. 基本语法
语法格式为:序列[起始索引:结束索引:步长]
相关注意点如下:
- 切片操作的区间是左闭右开的,即:截取时包含起始位置,但不包含结束位置。
- 步长是指取出元素时的间隔,例如:
- 步长为 1,就是一个一个取出。
- 步长为 2,就是每次越过 1 个元素取出。
- 步长为 3,就是每次越过 2 个元素取出。
- 步长为 n,就是每次越过 n-1 个元素取出。
- 起始索引默认值为 0,结束索引默认截取到末尾,步长默认值为 1。
- 当起始索引大于结束索引时,步长必须为负数,否则结果是空列表。
测试代码:
# 对列表进行切片
list1 = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
list2 = list1[0:5:1]
print(list2) # [10, 20, 30, 40, 50]
list1 = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
list2 = list1[1:8:2]
print(list2) # [20, 40, 60, 80]
list1 = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
list2 = list1[1:8:3]
print(list2) # [20, 40, 60, 80]
list1 = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
list2 = list1[::] # [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
print(list2)
list1 = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
list2 = list1[:999:]
print(list2) # [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
list1 = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
list2 = list1[3::]
print(list2) # [40, 50, 60, 70, 80, 90, 100]
list1 = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
list2 = list1[:5:]
print(list2) # [10, 20, 30, 40, 50]
list1 = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
list2 = list1[::4]
print(list2) # [10, 50, 90]
# 当起始索引大于结束索引时,步长必须为负数,否则结果是空列表。
list1 = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
list2 = list1[7:2:-1]
print(list2) # [80, 70, 60, 50, 40]
# 一个特殊情况:当同时省略起始索引和结束索引时,如果步长为负数,那Python会自动对调:起始位置和结束位置
list1 = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
list2 = list1[::-1]
print(list2) # [100, 90, 80, 70, 60, 50, 40, 30, 20, 10]
# 对元组进行切片
tuple1 = (10, 20, 30, 40, 50, 60, 70, 80, 90, 100)
tuple2 = tuple1[0:5:1]
print(tuple2) # (10, 20, 30, 40, 50)
# 对字符串进行切片
msg1 = 'welcome to atguigu'
msg2 = msg1[2:9:2]
print(msg2) # (10, 20, 30, 40, 50)
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END















请登录后查看评论内容