Python数据类型——序列 (sequence)(1)

本文介绍了Python中关于索引、分片以及序列的基本操作,包括如何使用索引获取和修改元素,分片的规则及技巧,以及序列的加法操作。此外,还提到了Python在IT领域的广泛应用和学习资源的重要性。
摘要由CSDN通过智能技术生成

a[0]

1

a[1]

2

注意到 , -1 则代表序列的最后一个元素, -2 代表倒数第二个元素,以此类推。

2.2 切片

索引用于获取序列中的单个元素,而分片则用于获取序列的部分元素。分片操作需要提供两个索引作为 边界,中间用冒号相隔,比如:

numbers = [1, 2, 3, 4, 5, 6]

numbers[0:2] # 列表分片

[1, 2]

numbers[2:5]

[3, 4, 5]

s = ‘hello, world’ # 字符串分片

s[0:5]

‘hello’

a = (2, 4, 6, 8, 10) # 元组分片

a[2:4]

(6, 8)

这里需要特别注意的是,分片有两个索引,第 1 个索引的元素是包含在内的,而第 2 个元素的索引 则不包含在内,也就是说,numbers[2:5] 获取的是 numbers[2], numbers[3], numbers[4],没有包括 numbers[5] 。

下面列举使用分片的一些技巧。

(1)访问最后几个元素

(2)使用步长

(1)访问最后几个元素

假设需要访问序列的最后 3 个元素,我们当然可以像下面这样做:

numbers = [1, 2, 3, 4, 5, 6]

numbers[3:6]

[4, 5, 6]

有没有更简洁的方法呢?想到可以使用负数形式的索引,你可能会尝试这样做:

numbers = [1, 2, 3, 4, 5, 6]

numbers[-3:-1] # 实际取出的是 numbers[-3], numbers[-2]

[4, 5]

numbers[-3:0] # 左边索引的元素比右边索引出现得晚,返回空序列

[]

上面的两种使用方式并不能正确获取序列的最后 3 个元素, Python 提供了一个捷径

(也就是说,如果希望分片包含最后一个元素,可将第 2 个索引置为空)

numbers = [1, 2, 3, 4, 5, 6, 7, 8]

numbers[-3:]

[6, 7, 8]

numbers[5:]

[6, 7, 8]

如果要复制整个序列,可以将两个索引都置为空:

numbers = [1, 2, 3, 4, 5, 6, 7, 8]

nums = numbers[:]

nums

[1, 2, 3, 4, 5, 6, 7, 8]

(2)使用步长

使用分片的时候,步长默认是 1 ,即逐个访问,我们也可以自定义步长,比如:

numbers = [1, 2, 3, 4, 5, 6, 7, 8]

numbers[0:4]

[1, 2, 3, 4]

numbers[0:4:1] # 步长为 1,不写也可以,默认为 1

[1, 2, 3, 4]

numbers[0:4:2] # 步长为 2,取出 numbers[0], numbers[2]

[1, 3]

numbers[::3] # 等价于 numbers[0:8:3],取出索引为 0, 3, 6 的元素

[1, 4, 7]

另外,步长也可以是负数,表示从右到左取元素:

numbers = [1, 2, 3, 4, 5, 6, 7, 8]

numbers[0:4:-1]

[]

numbers[4:0:-1] # 取出索引为 4, 3, 2, 1 的元素

[5, 4, 3, 2]

numbers[4:0:-2] # 取出索引为 4, 2 的元素

[5, 3]

numbers[::-1] # 从右到左取出所有元素

[8, 7, 6, 5, 4, 3, 2, 1]

numbers[::-2] # 取出索引为 7, 5, 3, 1 的元素

[8, 6, 4, 2]

numbers[6::-2] # 取出索引为 6, 4, 2, 0 的元素

[7, 5, 3, 1]

numbers[:6:-2] # 取出索引为 7 的元素

[8]

这里总结一下使用分片操作的一些方法, 分片的使用形式是

左索引:右索引:步长

left_index:right_index:step

要牢牢记住的是

左边索引的元素包括在结果之中,右边索引的元素不包括在结果之中;

当使用一个负数作为步长时,必须让左边索引大于右边索引;

对正数步长,从左向右取元素;对负数步长,从右向左取元素;

2.3 加

序列可以进行「加法」操作,如下:

最后

Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

👉Python所有方向的学习路线👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

👉Python必备开发工具👈

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

👉Python全套学习视频👈

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

👉实战案例👈

学python就与学数学一样,是不能只看书不做题的,直接看步骤和答案会让人误以为自己全都掌握了,但是碰到生题的时候还是会一筹莫展。

因此在学习python的过程中一定要记得多动手写代码,教程只需要看一两遍即可。

👉大厂面试真题👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

需要这份系统化学习资料的朋友,可以戳这里无偿获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值