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行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!