【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)

在这里插入图片描述

  
  

  好啦~以上就是本次文章分享的全部内容啦,你学会了吗?希望能给大家带来帮助哦!

    
  

在这里插入图片描述

Guess you like

Origin blog.csdn.net/qq_38679705/article/details/122316904