Python接口自动化测试框架(基础篇)-- 常用数据类型list&set()

简介: 本文介绍了Python中list和set两种数据类型的使用,包括它们的创建、取值、增删改查操作、排序以及内置函数的使用,还探讨了list的比较函数和set的快速去重功能。

一、前言

接下来的两篇是讲可变数据类型,本篇先讲list,它是python中最基本的数据类型,它的元素可以任何python数据类型

image.png

二、列表

关键字:list,符号[],数据组成:可以包含任意数据类型:int float str list tuple dict 布尔值;不同的元素用逗号隔开

1、创建列表
str1 = "123"

list_1 = []  # 表示空列表
list_2 = list(str1) # 把字符串拆分,一个一个的元素组成列表[]

print(list_2) # 输出:["1","2","3"]
2、取值方式
  • 根据索引取值
  • 支持切片取值[m:n:k]
3、增删改查
  • 增加的多种方式,append追加,在list最后面的追加
list1 = [1,2,3,4]

list1.append("value")  # 直接在列表后面追加,
print(list1) # 输出:[1,2,3,4,"value"]
  • insert 往指定下标位置插入元素,原来位置的元素往后移
list1 = [1,2,3,4]

list1.insert(2,"element")

print(list1) # 输出:[1,2,"element",3,4]
  • extend(),参数是可迭代对象,如:set()、str、tuple、list
list1 = [1,2,3,4]
list1.extend("abc")

print(list1) # 输出:[1,2,3,4,"a","b","c"]
  • 删除的几种方法
pop()  # 删除list列表最末位的元素
remove(element)# 删除第一次出现的元素
del list[1] # 删除列表1索引位置的元素
clear() # 清空列表
  • 赋值运算,即替换:list[index_num]=New_value,index_num位置的值被替换成New_value
4、排序
  • 升序; 注意升降序的list元素必须是int类型
list1 = [5,2,3]
list1.sort() # 默认升序;

print(list1) # 输出:[2,3,5]
  • 降序,sort,可以由参数决定,默认是False升序
list1 = [5,2,3]

list1.sort(reverse=True)

print(list1) # 输出:[5,3,2]
  • 反序
list1 = [1,2,3]
list1.reverse()

print(list1) # 输出:[3,2,1]
5、其他内置函数
  • all() # list元素列表只要有一个false则返回false
  • any() # list元素列表中只要有一个true则返回true
  • len() # 求列表元素的长度
  • count() # 计算list元素的个数
  • max() # 返回list元素中最大的值
  • min() # 返回list元素中最小的值

三、集合

set(),花括号{}表示,为啥要跟list类型一块,因为它可以在list之间相互转换,且对list元素有去重的特性

1、创建set()集合
s = set()  # 表示一个空集合

print(s) # 输出:set()。 为啥不是{},因为{}是没值的dict类型

s = set([1,2,3])

print(s) # 输出:{1,2,3}
2、添加元素,如果有重复的元素是覆盖
se = {1,2,3}

se.add(4)

print(se) # 输出:{1,2,3,4}
  • 它是不可变数据类型

# add() 只能添加不可变数据类型,可变的就会报错
TypeError: unhashable type: 类型错误,不能hash的类型
3、删除remove元素,指定删除元素
se = {
   
   1,2,3}
se.remove(2)

print(se) # 输出:{1,3}

四、扩展

1、list的比较函数
  • cmp在python3中已经没有,如果想比较需要导入operator模块
import operator

list_1 = [1, 4.2, (1, 2), {
   
   1: "s", "abc": 1}, [1, 2, 3], "123"]
list_2 = [1, "a", ('b', 'c')]
print("operator比较两个列表的元素:", operator.__eq__(list_1, list_2))
2、set()快速去重
lis12=[1,3,7,9,1,3]
lis_set=set(lis12)
print("list快速去重,set集合只存在不可变数据类型:{}".format(lis_set))
  • 识别可变数据类型
lis14=[(1,),[1,2,3],1,{1,2,3},{"1":'1'},"12",True,1.123]
set(lis14)

执行结果:
1、TypeError: unhashable type: 'list',--去掉list类型
2、TypeError: unhashable type: 'set',--去掉set类型
3、TypeError: unhashable type: 'dict',--去掉dict类型
相关文章
|
12天前
|
测试技术 UED Python
探索软件测试的边界:自动化与手动测试的协同
【8月更文挑战第59天】在追求效率和质量的软件生产中,自动化测试与手动测试的辩论从未停止。本文将通过实际案例,揭示二者如何相辅相成,共同构建更健壮的软件测试体系。我们将深入探讨自动化测试的优势、手动测试不可替代的角色以及它们如何在实际项目中协同工作,旨在为读者提供一种平衡的视角来看待软件测试的实践。
108 65
|
3天前
|
敏捷开发 测试技术 持续交付
探索自动化测试框架的设计与实现
【9月更文挑战第36天】在软件开发的海洋中,自动化测试如同一艘能够带领我们高效航行的帆船。本文将引导你理解自动化测试框架的核心概念,并通过一个简化的例子展示如何搭建自己的测试框架。我们将一同揭开自动化测试的神秘面纱,让你从新手成长为能够独立设计和实现测试框架的高手。
|
28天前
|
数据可视化 数据管理 测试技术
聊聊自动化测试框架
关于自动化测试框架的一些理解和思考总结,就是上面这些内容,提到的一些框架组件可能存在不合理的地方,仅供参考,如有更好的建议,请指出,不胜感激
35 4
聊聊自动化测试框架
|
7天前
|
Web App开发 敏捷开发 数据管理
自动化测试框架的设计与实现
【9月更文挑战第32天】在软件开发的海洋中,自动化测试如同一艘精确导航的船只,确保我们的应用程序能够在波涛汹涌的技术潮流中稳健航行。本文将带你领略自动化测试框架的设计之美,从搭建基础到功能扩展,再到维护实践,我们将一起探索如何打造一个既高效又灵活的自动化测试体系。
14 3
|
23天前
|
敏捷开发 IDE 测试技术
自动化测试框架的选择与应用
【9月更文挑战第16天】在软件开发周期中,测试环节扮演着至关重要的角色。随着敏捷开发和持续集成的流行,自动化测试成为提升软件质量和效率的关键手段。本文将探讨如何根据项目需求选择合适的自动化测试框架,并通过实际案例分析展示其在软件开发过程中的应用。我们将从单元测试、集成测试到端到端测试等多个层面,讨论自动化测试的最佳实践和常见问题解决策略。
|
13天前
|
敏捷开发 Java 测试技术
自动化测试框架的选择与应用
【9月更文挑战第26天】在软件开发的海洋里,自动化测试是那一盏指路明灯。它不仅加快了开发周期,还提升了软件质量。本文将带你探索自动化测试框架的世界,了解它们的核心特性、适用场景及如何根据项目需求做出明智选择。让我们一起启航,找到那把打开高效、稳定软件生产大门的钥匙。
|
14天前
|
敏捷开发 数据管理 测试技术
自动化测试框架的设计与实现
【9月更文挑战第25天】 本文将引导读者深入理解自动化测试框架的核心概念,并展示如何从零开始构建一个简单且有效的自动化测试框架。通过通俗易懂的语言和实际代码示例,我们将探讨测试框架设计的关键步骤、实现方法以及常见问题的解决方案。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的知识和启示。
|
15天前
|
设计模式 SQL 安全
PHP中的设计模式:单例模式的深入探索与实践在PHP的编程实践中,设计模式是解决常见软件设计问题的最佳实践。单例模式作为设计模式中的一种,确保一个类只有一个实例,并提供全局访问点,广泛应用于配置管理、日志记录和测试框架等场景。本文将深入探讨单例模式的原理、实现方式及其在PHP中的应用,帮助开发者更好地理解和运用这一设计模式。
在PHP开发中,单例模式通过确保类仅有一个实例并提供一个全局访问点,有效管理和访问共享资源。本文详细介绍了单例模式的概念、PHP实现方式及应用场景,并通过具体代码示例展示如何在PHP中实现单例模式以及如何在实际项目中正确使用它来优化代码结构和性能。
|
12天前
|
存储 数据处理 Python
Python中的Set集合:高效数据处理的利器
Python中的Set集合:高效数据处理的利器
21 0
|
14天前
|
设计模式 测试技术 持续交付
自动化测试框架的设计与实现
【9月更文挑战第25天】本文旨在探讨如何设计并实现一个高效、可扩展的自动化测试框架,以提升软件测试的效率和质量。通过分析当前流行的测试框架特点,结合最佳实践,提出一套完整的解决方案。文章不仅涵盖框架设计的理论依据,还包括具体实现步骤和示例,帮助读者深入理解自动化测试框架的搭建过程。