一、前言 二、列表讲解
2.1 列表作用2.2 空列表2.3 列表索引2.4 列表切片2.5 列表嵌套2.6 列表的操作
2.6.1 列表元素新增(append / extend / insert)2.6.2 列表元素删除(pop / remove / del / clear)2.6.3 列表元素修改2.6.4 列表元素获取(index)2.6.5 列表元素次数统计(count)2.6.6 列表元素倒序(reverse)2.6.7 列表排序(sort) 三、元组讲解
3.1 元组作用3.2 空元组3.3 表示一个元组3.4 元组操作
3.4.1 元组索引3.4.2 元组切片3.4.3 元组查询(index)3.4.4 元组统计(count)3.4.5 元组特别数据类型修改 一、前言
本文章主要讲解的是关于Python中列表的操作、常用方式、注意事项等内容,是列表与元组的专题讲解。
因列表本身与字符串的底层存储相近,故此字符串的索引、切片在列表上同样适用,在本文章中关于列表与字符串相近的内容,仅概括说明,如需要详细的了解,可以参阅笔者的上一个文章:【Python自动化测试4】字符串知识总结
系列文章推荐:
优质文章推荐1:【Python自动化测试1】遇见Python之美
优质文章推荐2:【Python自动化测试2】Python安装配置及PyCharm基本使用
优质文章推荐3:【Python自动化测试3】初识数据类型与基础语法
优质文章推荐4:【Python自动化测试4】字符串知识总结
大部分内容都是在后续的自动化文章中会使用到的内容,小部分内容了解即可,初识Python的同学建议都了解一下,话不多说,快来一起看看吧~
列表的主要作用是用于存储多个数据,在自动化测试的场景,列表的作用亦是如此,列表可以存储不同的数据类型,虽然可以这样使用,但这样的场景并不多,大部分都是同类型的数据
2.2 空列表表示一个空列表有两种方式,一种方式是用变量来存储一个空列表,另外一种是以list直接表示一个空列表:
# 使用变量存储一个空列表a_list = []print(a_list)# list()也可以用于表示一个空列表print(list())# 列表长度打印print(len(a_list))print(len(list()))
2.3 列表索引列表的底层存储与字符串相近,故此字符串的索引可以完全复用至列表,上个章节提到了索引的作用是方便精准定位到某个具体的位置,列表的索引则是方便我们在使用时便捷的查找到我们需要的数据,取某一个列表数据。
列表的索引取得的数据类型就是该元素的数据类型,列表的索引下标也是从0开始的:
# 1个长度为4的列表a_list = ["生活", "爱情", "技能", "勇气"]print(len(a_list))# 取列表中下标为0的数据print(a_list[0])
列表中如果有空元素,那么也同样是要占用一个列表长度的~
# 1个长度为6的列表a_list = ["生活", "爱情", "技能", "勇气", None, ""]print(len(a_list))# 取列表中下标为5的数据print(a_list[5])
我们可以通过-1来直接获取最后一个,-2,-3则是从右侧向左侧数的方式,同字符串操作:
# 1个长度为6的列表a_list = ["生活", "爱情", "技能", "勇气", None, True]print(len(a_list))# 取列表中下标为5的数据print(a_list[-1])
# 1个长度为6的列表a_list = ["生活", "爱情", "技能", "勇气", None, True]print(len(a_list))# 取列表中下标为5的数据print(a_list[-2])
2.4 列表切片列表切片所取得的数据还是一个列表,切片即使超出边界范围取值也不会出现报错,但索引会出现报错,列表的切片也同字符串的操作, 大同小异:
# 1个长度为6的列表a_list = ["生活", "爱情", "技能", "勇气", None, True]# 列表切片格式:变量[start:end]print(a_list[0:2])
# 1个长度为6的列表a_list = ["生活", "爱情", "技能", "勇气", None, True]# 列表步长切片格式:变量[start:end:step]print(a_list[0::2])
2.5 列表嵌套在开头我们提到了列表是可以存储多个数据类型的元素的,那么列表中也可以存储列表,我们把这样的方式称之为列表嵌套:
# 列表嵌套:列表中还存在一个列表元素a_list = ["生活", "爱情", "技能", "勇气", None, True, ["开发", "测试", "运维", "帅气的我"]]print(a_list)
那么我们要获取列表中嵌套列表的元素位置,同样也可以进行获取,我们先定位到这个嵌套列表的位置,那么在大列表中的位置是-1,然后在嵌套列表中找到我想要的元素,位置是-1:
# 列表嵌套:列表中还存在一个列表元素# 当存在列表嵌套时,我们仍然可以获取其元素位置# 获取格式: 变量[列表下标][嵌套列表下标]a_list = ["生活", "爱情", "技能", "勇气", None, True, ["开发", "测试", "运维", "帅气的我"]]print(a_list[-1][-1])
2.6 列表的操作列表支持各类操作,增删改查样样俱全,我们先前已经了解了索引与切片,知道了查询的方式,接下来会在介绍其他的操作
2.6.1 列表元素新增(append / extend / insert)如果我们想在一个列表里添加一个元素,那么我们可以使用append来进行元素添加,使用append进行列表的元素新增,新增的元素会在最末尾添加:
# append的用法:变量.append(添加的元素)# 添加的元素可以是多种数据类型list1 = ["爱情", "生活", "技能", "勇气"]print(list1.append("金钱"))
如果我们想在添加多个元素,可以使用extend,添加的元素也是会增加在列表的末尾,extend只能添加一个列表,不能是其他元素,但append可以添加
list1 = ["爱情", "生活", "技能", "勇气"]list1.append("颜值")print(list1)list2 = ["学习", "运动"]list1.extend(list2)print(list1)
除了在末尾添加一个或多个,我们也可以指定位置进行添加,添加在对应下标位置,添加后,其他的元素会默认移动下标位置:
# insert用法:变量.insert(下标位置,添加内容)a_list = ["生活", "爱情", "技能", "勇气", None, True, ["开发", "测试", "运维", "帅气的我"]]a_list.insert(0,"健康至上")print(a_list)
2.6.2 列表元素删除(pop / remove / del / clear)列表元素能够新增,自然也能够删除,如果我们想删除指定的元素,可以使用pop进行删除,pop是根据列表元素索引位置来删除的:
# pop用法:变量.pop(索引下标)a_list = ["生活", "爱情", "技能", "勇气", None, True, ["开发", "测试", "运维", "帅气的我"]]a_list.pop(4)print(a_list)
除了可以通过下标删除对应数据外,我们也可以通过直接删除对应的值来达到同样的效果,删除对应值,我们使用remove来实现:
# remove用法:变量.remove(删除元素值)a_list = ["生活", "爱情", "技能", "勇气", None, True, ["开发", "测试", "运维", "帅气的我"]]a_list.remove(None)print(a_list)
在Python中存在一种安全性机制,对于新增内容而言没有过多的限制,但对于删除而言,为了保护数据或误操作的影响,Python在删除时只能删除一个,不能删除多个,即使是有重复的元素,在删除机制里会默认删除第一个所找到的元素,后续其他元素保持不变:
a_list = ["生活", "爱情", "技能", "勇气", None, True, "勇气", ["开发", "测试", "运维", "帅气的我"]]a_list.remove("勇气")print(a_list)
还有一种删除的方式是del,我们也可以通过使用del来快速移除,同样是以索引下标进行元素查找:
# del用法: del 变量[索引下标]a_list = ["生活", "爱情", "技能", "勇气", None, True, "勇气", ["开发", "测试", "运维", "帅气的我"]]del a_list[3]print(a_list)
除上述元素下标删除以及元素值删除的方式,还有全部清空的方式,全部清空我们使用clear,但在真实的项目中是不太推荐这样使用的,了解即可:
# clear用法:变量.clear()a_list = ["生活", "爱情", "技能", "勇气", None, True, "勇气", ["开发", "测试", "运维", "帅气的我"]]a_list.clear()print(a_list)
2.6.3 列表元素修改列表的元素修改其实就是替换的原理,我们可以用赋值的方式修改对应元素索引下标的内容,来实现替换的目的:
a_list = ["生活", "爱情", "技能", "勇气", None, True, "勇气", ["开发", "测试", "运维", "帅气的我"]]a_list[0] = "生活不易,对自己好一些"print(a_list)
2.6.4 列表元素获取(index)列表获取元素位置的方式与字符串相同,均可以使用index进行获取:
# index用法:变量.index(元素值)a_list = ["生活", "爱情", "技能", "勇气", None, True, "勇气", ["开发", "测试", "运维", "帅气的我"]]print(a_list.index(None))
2.6.5 列表元素次数统计(count)我们可以通过count来获取某一个列表元素在该列表中出现过多少次,最终会返回出现次数的结果:
# index用法:变量.count(查找元素值)a_list = ["生活", "爱情", "技能", "勇气", None, True, "勇气", ["开发", "测试", "运维", "帅气的我"]]print(a_list.count("勇气"))
2.6.6 列表元素倒序(reverse)如果我们要倒序一个列表,则可以使用reverse来快速达成倒序:
a_list = ["生活", "爱情", "技能", "勇气", None, True, "勇气", ["开发", "测试", "运维", "帅气的我"]]a_list.reverse()print(a_list)
2.6.7 列表排序(sort)日常中可能想重新整理列表数据进行排序或加以使用,我们可以通过sort进行排序:
a_list = ["生活", "爱情", "技能", "勇气", "None", "True", "勇气", "开发", "测试", "运维", "帅气的我"]a_list.sort()print(a_list)
a_list = [1314, 520, 288, 101]a_list.sort()print(a_list)
排序中不同数据类型大概率是没有办法进行排序比较的,例如NoneType与字符串就无法比较,故此需要修改一开始的NoneType类型,最后在使用soft,否则会出现报错信息,排序的顺序会根据编码规则进行排序:
三、元组讲解 3.1 元组作用元组的作用同列表,主要用于存储多个数据,也可以存储不同数据类型的元素,列表是以中括号[]进行表示,而元组是以小括号()进行表示且元组不能进行修改:
a_tuple = (1, "积极向上", "活力四射", [1314, 520])print(a_tuple)
3.2 空元组可以空字符串、空列表,自然也可以空元组,表示空元组有两种方式:
print(())print(tuple())
3.3 表示一个元组一个元组的表示必须在单个元素后加,以表示这是一个元组:
# 这样的表示形式,这是一个整型的数字a_tuple = (1)print(a_tuple)print(type(a_tuple))# 这是一个元组,如果想表示一个元组就需要在元素后加逗号,例如(1,)b_tuple = (1,)print(b_tuple)print(type(b_tuple))
3.4 元组操作 3.4.1 元组索引
元组的索引与列表一致,直接上图:
# 索引格式:变量[索引下标]a_tuple = (1, "积极向上", "活力四射", [1314, 520])print(a_tuple[2])
3.4.2 元组切片元组的切片与列表一致,直接上图:
a_tuple = (1, "积极向上", "活力四射", [1314, 520])print(a_tuple[1:3])
a_tuple = (1, "积极向上", "活力四射", [1314, 520])print(a_tuple[1:3:2])
3.4.3 元组查询(index)我们如果想查询一个元组,那么可以使用index,元组同样支持,查询结果返回下标,如果未查询到会出现ValueError报错:
# index用法:变量.index(查询内容),返回查询内容的下标,如果没有查询到则会报ValueError的错误a_tuple = (1, "积极向上", "活力四射", [1314, 520])print(a_tuple.index("活力四射"))
# index用法:变量.index(查询内容),返回查询内容的下标,如果没有查询到则会报ValueError的错误a_tuple = (1, "积极向上", "活力四射", [1314, 520])print(a_tuple.index("1"))
3.4.4 元组统计(count)我们可以对元组进行统计,使用count方法,count方法会统计某一个元素出现的次数,对于不存在的元素,返回结果为0不会报错:
a_tuple = (1, "积极向上", "活力四射", "活力四射", "活力四射", [1314, 520])print(a_tuple.count("活力四射"))print(a_tuple.count("帅"))
3.4.5 元组特别数据类型修改在3.1中我们提到了元组是不可进行修改的,但有一种特别的情况,当元组中存储的数据非整体的元组元素时,我们就可以进行修改,但无法直接进行元组元素的修改:
# 当我们修改的内容是非元组元素整体的情况下例如列表数据,那么是可以直接进行修改的,例子修改了元组中列表元素下标为0的值a_tuple = (1, "积极向上", "活力四射", "活力四射", "活力四射", [1314, 520])a_tuple[-1][0] = 5201314print(a_tuple)
# 当我们修改的内容是非元组元素整体的情况下例如列表数据,那么是可以直接进行修改的,例子修改了元组中列表元素下标为0的值a_tuple = (1, "积极向上", "活力四射", "活力四射", "活力四射", [1314, 520])a_tuple[-1][0] = 5201314print(a_tuple)# 当我们尝试进行元组元素的修改时会直接报错,因为该元素是作为元组的一个整体元素,不可进行修改a_tuple[-2] = "青春无极限"print(a_tuple)
好啦~以上就是本次文章分享的全部内容啦,你学会了吗?希望能给大家带来帮助哦!