何为序列?—— 能连续存放元素的数据容器,而且元素有先后顺序,并可以通过下标访问,就是序列。比如之前学过的:列表、元组、字符串,都是序列。
何为切片?—— 从序列中按照指定的范围,取出一部分元素,形成一个新的序列的操作。
切片是序列的一个重要操作,当然序列还有其他常用操作,如:相加、相乘(重复),下文会详细介绍。
基本语法:
序列[起始索引:结束索引:步长]
语法解析:
示例代码:
# 对列表切片
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]) # 01234
print(msg1[1:8:2]) # 1357
print(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 的语法真的太简洁,太高效了,和给了我更大的学习动力。