文章目录

  • 一、前言
  • 二、列表讲解
    • 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】字符串知识总结

  大部分内容都是在后续的自动化文章中会使用到的内容,小部分内容了解即可,初识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】列表与元组知识讲解相关推荐

  1. 【Python自动化测试7】数据运算符知识讲解

    文章目录 一.前言 二.数据运算合集 2.1 算数运算符 2.2 赋值运算符 2.3 比较运算符 2.4 逻辑运算符 2.5 成员运算符 2.6 身份运算符 2.7 位运算符 2.8 运算优先级 2. ...

  2. python文本字符分析、编写程序接收字符串_python 文本分析Python编程中字符串和列表的基本知识讲解...

    Python 字符串 字符串是 Python 中最常用的数据类型.我们可以使用引号来创建字符串. 创建字符串很简单,只要为变量分配一个值即可.例如: var1 = 'Hello World!' var ...

  3. 附加 集合数据_最全的实例详解:Python字符串、列表、元组、字典、集合的补充...

    本文内容主要介绍了Python字符串.列表.元组.字典.集合,结合实例形式详细分析了Python字符串.列表.元组.字典.集合常见函数使用方法及相关操作注意事项,需要的朋友可以参考下!!! 附加: p ...

  4. python中的列表和元组_python中列表和元组的区别

    如果有了解过python中的列表和元组,你可能会知道相对于列表,元组是不可变的,也就是说元组中的数据不能随意更改.除了列表是用中括号表示而元组是用小括号表示之外,这两种数据类型好像并没有什么不同,都是 ...

  5. python集合和列表、安从小到大的顺序组合成一个字典_第3章 Python容器:列表、元组、字典与集合...

    3.1 列表和元组 除字符串外,Python 还有另外两种序列结构:元组和列表.它们都可以包含零个或多个元 素.与字符串不同的是,元组和列表并不要求所含元素的种类相同,每个元素都可以是任 何 Pyth ...

  6. python元组读取到列表_Python 学习笔记(1)Python容器:列表、元组、字典与集合...

    Python容器:列表.元组.字典与集合 列表: 1.列表 的创建 使用[ ] 或者list()创建列表:empty_list = [ ] 或者 empty_list= list() 使用list() ...

  7. 第三章 Python容器:列表、元组、字典与集合

    3.1 列表和元组 除字符串以外,Python还有另外两种序列结构:元组和列表.他们都可以包换0个或多个元素,元组并不要求所含元素的种类相同,每个元素可以是各种类型的Python对象. 元组是不可变的 ...

  8. Python.习题五 列表与元组(下)

    Python.<习题五> 列表与元组 11.假设列表lst_info=[["李玉","男",25],["金忠","男& ...

  9. python字符串,列表,元组,字典的基本操作

    python字符串,列表,元组,字典的基本操作 文章目录 python字符串,列表,元组,字典的基本操作 一.字符串 1.1字符串的输出 1.2字符串的输入 1.3下标和切片 1.4 字符串常见操作 ...

最新文章

  1. C++基础知识(二)
  2. MNE-Python : TypeError: today() takes no keyword arguments
  3. Thinking in java基础之集合框架
  4. Minimum Ternary String CodeForces - 1009B(思维)
  5. 【青岛】12月16日.NETCore与AI技术交流会-等你来哦!!
  6. [渝粤教育] 中国地质大学 电力系统保护原理 复习题 (2)
  7. 架构师基础必备:“腹有诗书气自华”,驰骋一线大厂不是梦,抓紧收藏
  8. Docker启动MySql后连接报1251处理方法
  9. Redis分布式基础主从同步
  10. 台达plc控制伺服电机编程实例_plc控制伺服电机程序实例讲解!成功都是可以复制的!...
  11. netty实现gmssl_gmssl国密总结
  12. 二、SSD网络原理及代码讲解
  13. 刚入职就写了个bug,把几万用户搞蓝屏了···
  14. 中望3d快捷键命令大全_cad快捷键大全下载
  15. c语言中空格的转义字符是什么意思,转义字符-转义字符是什么意思? 爱问知识人...
  16. 学习OpenCV3:MinGW编译OpenCV到vs_version.rc.obj处出错
  17. docker文件过大,Docker容器引擎,迁移/var/lib/docker/到本机其它挂载分区或远程主机的某个分区。docker迁移
  18. 循环队列 C++ 实现
  19. 使用Python和OpenCV进行图像拼接和全景图构建
  20. cf-666 div2: E Monster Invaders (动态规划)

热门文章

  1. 再谈Python启动器与Anaconda解释器的关联问题
  2. JAVA光头之路(三)--循环
  3. springBoot实现http代理ip
  4. 【系统安全】X509证书介绍
  5. wordpress自动发布_如何在WordPress中跟踪发布想法
  6. Xshell常用快捷键收藏
  7. 微信公众号 语音转文字api_微信聊天的语音转文字,居然自动添加表情?你猜不到吧...
  8. python 批量移动文件_[Python] 自动化办公 批量命名和移动文件
  9. 合同太厚骑缝章怎么盖_怎样盖很厚的骑缝章
  10. 一图读懂HUAWEI HiAI Foundation