Python自动化测试5列表与元组知识总结
Posted 萌笑天
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python自动化测试5列表与元组知识总结相关的知识,希望对你有一定的参考价值。
一、前言
本文章主要讲解的是关于Python中列表的操作、常用方式、注意事项等内容,是列表与元组的专题讲解。
因列表本身与字符串的底层存储相近,故此字符串的索引、切片在列表上同样适用,在本文章中关于列表与字符串相近的内容,仅概括说明,如需要详细的了解,可以参阅笔者的上一个文章:【Python自动化测试4】字符串知识总结
系列文章推荐:
优质文章推荐1:【Python自动化测试1】遇见Python之美
优质文章推荐2:【Python自动化测试2】Python安装配置及PyCharm基本使用
优质文章推荐3:【Python自动化测试3】初识数据类型与基础语法
优质文章推荐4:【Python自动化测试4】字符串知识总结
大部分内容都是在后续的自动化文章中会使用到的内容,小部分内容了解即可,初识Python的同学建议都了解一下,话不多说,快来一起看看吧~
二、列表讲解
2.1 列表作用
列表的主要作用是用于存储多个数据,在自动化测试的场景,列表的作用亦是如此,列表可以存储不同的数据类型,虽然可以这样使用,但这样的场景并不多,大部分都是同类型的数据
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] = 5201314
print(a_tuple)
# 当我们修改的内容是非元组元素整体的情况下例如列表数据,那么是可以直接进行修改的,例子修改了元组中列表元素下标为0的值
a_tuple = (1, "积极向上", "活力四射", "活力四射", "活力四射", [1314, 520])
a_tuple[-1][0] = 5201314
print(a_tuple)
# 当我们尝试进行元组元素的修改时会直接报错,因为该元素是作为元组的一个整体元素,不可进行修改
a_tuple[-2] = "青春无极限"
print(a_tuple)
好啦~以上就是本次文章分享的全部内容啦,你学会了吗?希望能给大家带来帮助哦!
以上是关于Python自动化测试5列表与元组知识总结的主要内容,如果未能解决你的问题,请参考以下文章