在 Python 中,序列(容器)类型包括字符串、列表、元组、集合和字典,这些序列支持以下几种通用的操作,但比较特殊的是,集合和字典不支持索引、切片、相加和相乘操作
序列索引
序列中,每个元素都有属于自己的编号(索引)。从起始元素开始,索引值从 0 开始递增,如图 1 所示。
图 1 序列索引值示意图
除此之外,Python 还支持索引值是负数,此类索引是从右向左计数,换句话说,从最后一个元素开始计数,从索引值 -1 开始,如图 2 所示。
图 2 负值索引示意图
注意,在使用负值作为列序中各元素的索引值时,是从 -1 开始,而不是从 0 开始。
序列切片
切片操作是访问序列中元素的另一种方法,它可以访问一定范围内的元素,通过切片操作,可以生成一个新的序列。
序列实现切片操作的语法格式如下:
序列 (容器) 名[ 开始索引位置 : 结束索引位置 : 步长 ]
注意:
切片包含左边的第一个数值,但不包含右边最后一个值(包左不包右)
开始索引不写,默认从0开始
结束索引也可以不写
步长值不写,默认是 1
例:
str="hello World"
#取索引区间为[0,2]之间(不包括索引2处的字符)的字符串
print(str[:2])
#隔 1 个字符取一个字符(步长为2),区间是整个字符串
print(str[::2])
#取整个字符串,此时 [] 中只需一个冒号即可
print(str[:])
结果:
he
hloWrd
hello World
序列加法(字符串拼接)
将多个字符串等组合在一起(+ 根据实际情况选择)
a = "hello python"
print("hello" + "word" + a)
print("hello" "word"+a)
结果:
hellowordhello python
hellowordhello python
序列相乘(重复拼接)
使用 * 将需要重复的数据进行多次重复
a = "hello python"
print("hello python \t" * 3 )
print(f"{a}\t" * 3 )
说明:
\t 表示tab键,作用是缩进,相当于空格
f 是格式化输出
结果
hello python hello python hello python
hello python hello python hello python
检查元素是否在序列中
使用 in 进行判断 (not in 的用法和 in 一样,not in 的结果和 in 的结果刚好相反)
语法: 需要判断的元素(值) in 序列(容器)名
例:
li = [1,2,3,4,5,6]
# 返回的结果是一个布尔值 (bool 类型)
print(1 in li) # 结果为 True