Python的序列结构及常用操作方法

本文介绍了Python中序列的基本操作,包括通过索引访问元素,使用正负索引以及切片获取部分序列,序列的相加和乘法运算,以及如何检查元素是否属于序列,以及计算序列的长度、最大值和最小值。文章以列表为例,详细解释了各项操作的语法和用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上一篇:Python流程控制语句之跳转语句


前言

序列是一块用于存放多个值的连续内存空间,并且按一定顺序排列,每个值(称为元素)都分配一个数字,称为索引通过该索引可以取出相应的值。例如,我们可以把一家酒店看作一个序列,那么酒店里的每个房间都可以看作是这个序列的元素。而房间号就相当于索引,可以通过房间号找到对应的房间。

在Python中,序列结构主要有列表元组集合字典字符串,对于这些序列结构有以下几个通用的操作。其中,集合和字典不支持索引、切片、相加和相乘操作


一、索引

序列中的每一个元素都有一个编号,也称为索引索引是从 0 开始递增的,即下标为 0 表示第一个元素,下标为 1 表示第二个元素,以此类推。如下图所示:

在这里插入图片描述

序列的索引也可以是负数,这个索引从右向左计数,也就是从最后的一个元素开始计数,即最后一个元素的索引值是 -1,倒数第二个元素的索引值为 -2,以此类推。如下图所示:

在这里插入图片描述

在这里插入图片描述 注意:在采用负数作为索引值时,是从 -1 开始的,而不是从 0 开始的,即最后一个元素的下标为 -1,这是为了防止与第一个元素重合。

通过索引可以访问序列中的任何元素。例如,定义一个包括 5 个元素的列表,要访问它的第 4 个元素和最后一个元素,可以使用下面的代码:

fruits = ["苹果", "香蕉", "车厘子", "榴莲", "草莓"]
print(fruits[3])  # 输出第4个元素
print(fruits[-1])  # 输出最后一个元素

结果如下:

榴莲
草莓

在这里插入图片描述 说明:关于列表的详细介绍在后面博客会说到。

二、切片

切片是访问序列中元素的另一种方法,它可以访问指定范围内的元素,通过切片操作生成一个新的序列。实现切片操作的语法格式如下:

sname[start:end:step]

参数说明:

  • sname表示序列的名称
  • start表示切片的开始位置(包括该位置),如果不指定,则默认为 0。
  • end表示切片的截止位置(不包括该位置),如果不指定,则默认为序列的长度。
  • step表示切片的步长,如果省略,则默认为1,当省略该步长时,最后一个冒号也可以省略。

在这里插入图片描述 说明:在进行切片操作时,如果指定了步长,那么将按照该步长遍历序列的元素,否则将一个一个遍历序列。

例如,通过切片先获取【2022年中国大学排名】前十位中的第 3 个到第 6个元素,再获取第 2 个、第 4 个和第 6 个元素,可以使用下面的代码:

universities = ["1-清华大学", "2-北京大学", "3-浙江大学", "4-上海交通大学",
                "5-复旦大学", "6-南京大学", "7-中国科学技术大学", "8-华中科技大学",
                "9-武汉大学", "10-西安交通大学"]
print(universities[2:6])  # 获取第3个到第6个元素
print(universities[1:6:2])  # 获取第2个、第4个和第6个元素

运行代码结果如下:

['3-浙江大学', '4-上海交通大学', '5-复旦大学', '6-南京大学']
['2-北京大学', '4-上海交通大学', '6-南京大学']

三、序列相加

在Python中,支持两种相同类型的序列相加操作,即将两个序列进行连接,不会去除重复的元素,使用加(+)运算符实现。例如,将两个列表相加,可以使用下面的代码:

fruits = ["苹果", "香蕉", "车厘子", "榴莲", "草莓"]
vegetables = ["茄子", "土豆", "豆角"]
print(fruits+vegetables)

代码运行结果如下:

['苹果', '香蕉', '车厘子', '榴莲', '草莓', '茄子', '土豆', '豆角']

从上面的输出结果中可以看出,两个列表被合成一个列表了。

在这里插入图片描述 说明:在进行序列相加时,相同类型的序列是同为列表、元组、字符串等,至于序列中的元素类型可以不同。

例如下面代码也是正确的:

fruits = ["苹果", "香蕉", "车厘子", "榴莲", "草莓"]
num = [20, 13, 45, 78]
print(fruits+num)

相加后的结果如下:

['苹果', '香蕉', '车厘子', '榴莲', '草莓', 20, 13, 45, 78]

但是不能将列表和元组相加,也不能将列表和字符串相加。例如下面代码就是错误的:

a = "人生苦短,我用Python"
num = [20, 13, 45, 78]
print(a+num)

上面代码运行之后就会产生报错,如下图所示:

在这里插入图片描述

四、乘法

在Python中,使用数字 n 乘以一个序列会生成新的序列,新序列的内容为原来序列被重复 n 次的结果。例如下面的代码,将实现把一个序列乘以 3 生成一个新的序列并输出,从而达到 “重要的事情说三遍” 的效果。

love = ["爱你一万年"]
print(love * 3)

运行上面代码,结果显示如下内容:

['爱你一万年', '爱你一万年', '爱你一万年']

五、检查某个元素是否是序列的成员

在Python语言中,可以使用 in 关键字检查某个元素是否为序列的成员,即检查某个元素是否包含在某个序列中。语法格式如下:

value in sequence

其中,value 表示要检查的元素sequence 表示指定的序列。例如,要检查名称为 fruits 的序列中,是否包含元素 “榴莲”,可以使用下面的代码:

fruits = ["苹果", "香蕉", "车厘子", "榴莲", "草莓"]
print("榴莲" in fruits)

运行上面的代码,将显示结果为 True,表示序列中存在指定的元素。

另外,在Python中,也可以使用 not in 关键字检查某个元素是否不包含在指定的序列中。例如下面的代码:

fruits = ["苹果", "香蕉", "车厘子", "榴莲", "草莓"]
print("榴莲" not in fruits)

上述代码是判定 “榴莲” 没有在序列 fruits 中,但是 “榴莲” 是在的,所以运行之后结果为 False。如下图所示:

在这里插入图片描述

六、计算序列的长度、最大值和最小值

Python中提供了内置函数计算序列的长度、最大值和最小值。分别是:使用 len() 函数计算序列的长度,即返回序列包含多少个元素;使用 max() 函数返回序列中的最大元素使用 min() 函数返回序列中的最小元素

例如,定义一个包含 6 个元素的列表,并通过 len() 函数计算列表的长度,可以使用下面的代码:

num = [34, 2, 65, 31, 698, 17]
print("列表num的长度为", len(num))

代码运行之后结果如下:

列表num的长度为 6

就刚才的列表 num,我们使用 max() 函数和 min() 函数来分别计算列表中的最大元素和最小元素,代码如下:

num = [34, 2, 65, 31, 698, 17]
print("列表num中的最大元素为", max(num))
print("列表num中的最小元素为", min(num))

运行上面的代码,将显示以下结果:

列表num中的最大元素为 698
列表num中的最小元素为 2

总结

以上就是今天和大家分享的Python中序列类型的常用操作方法,在开发中使用频率最高的就是索引切片这两种方法,大家业余多注意练习。喜欢博主文章的都可以点赞+关注,哪些不理解的也可以在评论区留言哦。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员小十一

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值