❝Python入门第九课,主要学习最重要的数据容器——序列的常用操作,切片、相加、重复等序列操作,提供了灵活的数据提取、组合与复制功能,是高效处理有序数据的核心工具。
什么是序列
何为序列?—— 能连续存放元素的数据容器,而且元素有先后顺序,并可以通过下标访问,就是序列。比如之前学过的:列表、元组、字符串,都是序列。
什么是切片
何为切片?—— 从序列中按照指定的范围,取出一部分元素,形成一个新的序列的操作。
❝切片是序列的一个重要操作,当然序列还有其他常用操作,如:相加、相乘(重复),下文会详细介绍。
切片语法格式
基本语法:
序列[起始索引:结束索引:步长]
语法解析:
- 切片操作的区间是左闭右开的,即:截取时包含起始位置,但不包含结束位置。
- 起始索引默认值为0,结束索引默认截取到末尾,步长默认为1。
- 当起始索引大于结束索引时,步长必须为负数,否则结果是空列表。
示例代码:
# 对列表切片list1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]print(list1[0:5:1]) # [0, 1, 2, 3, 4]print(list1[1:8:2]) # [1, 3, 5, 7]print(list1[1:8:3]) # [1, 4, 7]print(list1[::]) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]print(list1[:999:]) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]print(list1[3::]) # [3, 4, 5, 6, 7, 8, 9, 10]print(list1[:5:]) # [0, 1, 2, 3, 4]print(list1[::4]) # [0, 4, 8]print(list1[7:2:-1]) # [7, 6, 5, 4, 3]print(list1[::-1]) # [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]print() # 换行# 对元组进行切片tuple1 = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10)print(tuple1[0:5:1]) # (0, 1, 2, 3, 4)print(tuple1[1:8:2]) # (1, 3, 5, 7)print(tuple1[::-1]) # (10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0)print() # 换行# 对字符串进行切片msg1 = '0123456789'print(msg1[0:5:1]) # 01234print(msg1[1:8:2]) # 1357print(msg1[::-1]) # 9876543210
序列相加
就是把两个序列拼接在一起。
需要注意的是:只有同类型的序列才能相加(字符串+字符串、列表+列表、元组+元组)。
示例代码:
# 列表相加list1 = [0, 1, 2, 3]list2 = ['a', 'b', 'c', 'd']print(list1 + list2) # [0, 1, 2, 3, 'a', 'b', 'c', 'd']# 元组相加tuple1 = (0, 1, 2, 3)tuple2 = ('a', 'b', 'c', 'd')print(tuple1 + tuple2) # (0, 1, 2, 3, 'a', 'b', 'c', 'd')# 字符串相加str1 = '01234'str2 = '56789'print(str1 + str2) # 0123456789
序列相乘(重复)
就是把序列重复指定的次数。
# 列表list1 = [0, 1, 2, 3]print(list1 * 3)# 元组tuple1 = (0, 1, 2, 3)print(tuple1 * 3)# 字符串str1 = '01234'print(str1 * 3)
❝学习感受,虽然只是浅浅的学习了序列的常用基础操作,但是作为有着十几年PHP Web开发经验的程序员,真心觉得 python 的语法真的太简洁,太高效了,和给了我更大的学习动力。