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

简介: Python中tuple(元组)的数据结构,包括元组的创建、访问、修改,以及元组支持的运算符和内置函数,还探讨了元组的特性如不可变性和特殊用法,最后扩展介绍了命名元组的概念和使用。

前言

作为python常用的数据类型之tuple(元组);也是不可变数据类型,标识是()圆括号,元素使用逗号隔开,如果是一个元素的元组,也要使用逗号隔开,否则它不是元组。

>>> print((1))
1
>>> print(type((1)))
<class 'int'>
>>> print(type((1,)))
<class 'tuple'>

不可变数据类型

讲到这里,python常用数据类型中的不可变数据类型已经都列举完了:str、number(bool是可变的数据类型)、tuple;什么叫不可变数据类型?简单理解就是当这类数据类型,它的值无论增减内存地址是不变的,这样就可以称之为不可变数据类型。

  • 以int类型为例:
>>> i = 1
>>> j = 1
>>> print(id(i))
140720483874592
>>> i = j+1
>>> print(id(i))
140720483874624
  • 以bool类型为例(所以它是可变的数据类型):
>>> t = True
>>> print(id(t))
140720483592016
>>> t = False
>>> print(id(t))
140720483592048

tuple元组

创建元组

t = () # 空元组

t1 = (1,) # 只有一个元素的元组,(1) 不是元组

print(t1) # 输出(1,)
访问元组
  • 支持索引(下标)取值

t_1 = (1,2,3,4)

print(t_1[1]) # 输出:2
  • 支持切片取值

t_1 = (1,2,3,4)

print(t_1[1:3]) # 输出:(2,3)
# 切片取值取出的是元组
  • 支持反序取值

t_1 = (1,2,3,4)

print(t_1[-1]) # 输出:4
  • 注意正/反序取值的之后 ,[nⓂ️k] k值的正负跟n/m有关

t_1 = (1,2,3,4)

print(t_1[1:4:2]) # 输出:(2,4)

print(t_1[-1:-4:-2]) # 输出:(4,2)

print(t_1[-1:-4:2]) # 输出:() ,不会有值
print(t_1[1:4:-2]) # 输出:() ,不会有值
修改元组

前面说过tuple是不可变数据类型,但是可以拼接组合生成新的元组

  • 支持+加号拼接

t_1 = (1,2,3)
t_2 = (4,5,6)

t_3 = t_1 + t_2

print(t_3) # 输出:(1,2,3,4,5,6)
  • 同理支持*乘法运算

t_1 = (1,2,3)

print(t_1*2) # 输出:(1,2,3,1,2,3)
元组的运算符
  • 上面已经说过支持加法+拼接和*乘法运算,不再举例
  • len支持求取数据元素长度

t_1 = (1,2,3)
t_2 = (4,5,6)

t_3 = t_1+t_2

print(len(t_3)) # 输出:6
  • 支持成员运算,这里先提一嘴,后面在运算符再详细举例
内置函数
  • index能获取元组的元素索引位置
t_1 = (1,2,3,5)

print(t_1.index(5)) # 输出:3
  • count查找元素出现次数
t_1 = (1,2,3,5)

print(t_1.count(5)) # 输出:1
特殊用法
  • 拆包解包,支持使用变量置换元素

t_1 = (1,2)
a,b = t_1

print(a,b) # 输出:1,2

b,a = t_1
print(a,b) # 输出:2,1
  • 没有符号的对象以逗号隔开,默认就是元组数据类型

t_1 = 1,"a","d"

print(t_1) # 输出:(1,"a","d")
print(type(t_1)) # 输出:<class 'tuple'>

扩展

命名元组

它是一个空间,但不是数据类型,在数据方面可以用来储存数据

  • collections.namedtuple(typename, field_names):返回typename命名元组类,field_names是字段。
# cmd进入python命令交互模式

>>> from collections import namedtuple
>>>
>>> test = namedtuple("test",["name","age","addr"])
>>> t = test("joe",18,"aaaa")
>>> print(t)
test(name='joe', age=18, addr='aaaa')
>>> print(t.name)
joe
>>> print(t.age)
18
  • 后面在接口自动化实战中再去详细介绍namedtuple的应用场景
相关文章
|
8月前
|
设计模式 前端开发 测试技术
告别脆弱:构建稳定UI自动化测试的3个核心策略
告别脆弱:构建稳定UI自动化测试的3个核心策略
780 113
|
8月前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。
|
9月前
|
缓存 监控 算法
唯品会item_search - 按关键字搜索 VIP 商品接口深度分析及 Python 实现
唯品会item_search接口支持通过关键词、分类、价格等条件检索商品,广泛应用于电商数据分析、竞品监控与市场调研。结合Python可实现搜索、分析、可视化及数据导出,助力精准决策。
|
8月前
|
SQL 安全 Linux
Metasploit Pro 4.22.8-20251014 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.8-20251014 (Linux, Windows) - 专业渗透测试框架
421 1
Metasploit Pro 4.22.8-20251014 (Linux, Windows) - 专业渗透测试框架
|
8月前
|
Linux 网络安全 iOS开发
Metasploit Framework 6.4.95 (macOS, Linux, Windows) - 开源渗透测试框架
Metasploit Framework 6.4.95 (macOS, Linux, Windows) - 开源渗透测试框架
883 1
Metasploit Framework 6.4.95 (macOS, Linux, Windows) - 开源渗透测试框架
|
9月前
|
机器学习/深度学习 人工智能 测试技术
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
EdgeMark是一个面向嵌入式AI的自动化部署与基准测试系统,支持TensorFlow Lite Micro、Edge Impulse等主流工具,通过模块化架构实现模型生成、优化、转换与部署全流程自动化,并提供跨平台性能对比,助力开发者在资源受限设备上高效选择与部署AI模型。
762 9
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
|
9月前
|
安全 Linux 网络安全
Metasploit Pro 4.22.8-2025091701 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.8-2025091701 (Linux, Windows) - 专业渗透测试框架
504 2
Metasploit Pro 4.22.8-2025091701 (Linux, Windows) - 专业渗透测试框架
|
9月前
|
Linux 网络安全 iOS开发
Metasploit Framework 6.4.90 (macOS, Linux, Windows) - 开源渗透测试框架
Metasploit Framework 6.4.90 (macOS, Linux, Windows) - 开源渗透测试框架
572 1
Metasploit Framework 6.4.90 (macOS, Linux, Windows) - 开源渗透测试框架
|
8月前
|
数据采集 人工智能 自然语言处理
Playwright MCP 浏览器自动化框架全面解析
Playwright MCP是微软推出的开源项目,结合Playwright与MCP协议,让AI通过结构化数据直接操作浏览器。告别传统视觉识别,实现高效、精准的网页自动化,广泛应用于测试、爬虫、办公自动化等场景,大幅提升效率与可靠性。

推荐镜像

更多