当前位置: 首页 > news >正文

Phthon3 学习记录-0613

List(列表)、Tuple(元组)、Set(集合)和 Dictionary(字典)

在接口自动化测试中,List(列表)、Tuple(元组)、Set(集合)和 Dictionary(字典)这些数据结构都有各自独特的用途。以下通过一个简单的接口自动化测试示例来展示它们的用法及区别。

假设我们正在测试一个获取用户信息的接口,接口返回的数据类似如下:

{"users": [{"id": 1,"name": "Alice","email": "alice@example.com"},{"id": 2,"name": "Bob","email": "bob@example.com"}]
}
List(列表)

列表是有序且可变的。在接口自动化中,常用于存储一系列相关的数据,比如接口返回的多个用户信息。

import requestsdef test_get_users():response = requests.get('http://example.com/api/users')if response.status_code == 200:data = response.json()users_list = data.get('users', [])# 遍历列表获取每个用户信息for user in users_list:print(f"User ID: {user['id']}, Name: {user['name']}, Email: {user['email']}")# 修改列表中的数据(假设接口支持更新用户信息)if users_list:users_list[0]['name'] = 'UpdatedAlice'print(f"Modified User: {users_list[0]}")

Tuple(元组)
元组也是有序的,但它是不可变的。在接口测试中,可用于存储一些固定不变的数据,例如接口的固定请求头

import requestsdef test_get_users_with_fixed_headers():fixed_headers = ('Content-Type', 'application/json')response = requests.get('http://example.com/api/users', headers=dict([fixed_headers]))if response.status_code == 200:print("Request successful with fixed headers")
Set(集合)

集合是无序且不包含重复元素的。在接口自动化中,可用于检查接口返回的数据中是否存在重复的元素,比如重复的用户 ID。

import requestsdef test_check_unique_user_ids():response = requests.get('http://example.com/api/users')if response.status_code == 200:data = response.json()user_ids = set()users_list = data.get('users', [])for user in users_list:user_id = user['id']if user_id in user_ids:print(f"Duplicate user ID: {user_id}")else:user_ids.add(user_id)print(f"Unique user IDs: {user_ids}")
Dictionary(字典)

字典是无序的键值对集合。在接口自动化中,广泛用于处理接口的请求参数、响应数据等,因为它可以方便地通过键来访问值。

import requestsdef test_get_user_by_id():user_id = 1request_params = {'id': user_id}response = requests.get('http://example.com/api/user', params=request_params)if response.status_code == 200:user_data = response.json()print(f"User Name: {user_data.get('name')}, Email: {user_data.get('email')}")
#!/usr/bin/python3dict = {}
dict['one'] = "1 - 菜鸟教程"
dict[2]     = "2 - 菜鸟工具"tinydict = {'name': 'runoob','code':1, 'site': 'www.runoob.com'}print (dict['one'])       # 输出键为 'one' 的值
print (dict[2])           # 输出键为 2 的值
print (tinydict)          # 输出完整的字典
print (tinydict.keys())   # 输出所有键
print (tinydict.values()) # 输出所有值
        区别总结
  • List(列表):有序、可变,适用于需要顺序存储且可能需要修改的数据,如接口返回的多个对象列表。
    • a = [1, 2, 3, 4, 5, 6]
  • Tuple(元组):有序、不可变,适合存储固定不变的数据,如固定的请求头信息。
    • tuple = ( 'abcd', 786 , 2.23, 'runoob', 70.2  )
  • Set(集合):无序、不重复,用于需要确保元素唯一性的场景,比如检查接口返回数据中是否有重复值。
    • sites = {'Google', 'Taobao', 'Runoob', 'Facebook', 'Zhihu', 'Baidu'}

      print(sites)   # 输出集合,重复的元素被自动去掉
  • Dictionary(字典):无序的键值对,便于通过键快速查找对应的值,常用于处理请求参数和解析响应数据。
    • data = {
              "username": "test_user",
              "password": "test_password"
          }

http://www.xdnf.cn/news/1035217.html

相关文章:

  • leetcode2-两数相加
  • pycharm 2025.1.1-专业版jupyter notebook远程连接
  • 汇编语言学习(四)——汇编语言程序
  • 微信小程序使用图片实现红包雨功能
  • 算法专题八: 链表
  • scanf 读取字符串
  • 本地密码生成管理工具,自定义生成密码
  • Vue3组件生成唯一标识符方法
  • 16.vue.js watch()和watchEffect()的对比?(追踪依赖)(3)
  • 华为OD机考-货币单位换算-字符串(JAVA 2025B卷)
  • CMake 构建系统概述
  • LeetCode - 153. 寻找旋转排序数组中的最小值
  • Hive SQL执行流程深度解析:从CLI入口到执行计划生成
  • 计网复习知识(16)传输层及其协议功能
  • 贝塞尔曲线:优雅的数学艺术
  • C# 解析 URL URI 中的参数
  • OpenWrt | 解决NTFS格式的硬盘意外断电之后无法再次挂载的问题
  • 轻量免安装 透明背景图标一键提取,系统文件图标随取随用
  • NGINX 四层共享内存区同步模块实战 `ngx_stream_zone_sync_module`
  • qml显示svg矢量图形
  • FreeRTOS的低功耗Tickless模式
  • RLHF调参实战手册:实用Trick、现象排查与解决思路(持续更新)
  • 动态BGP服务器的用途都有什么?
  • Softhub软件下载站实战开发(二):项目基础框架搭建
  • 萌系盲盒陷维权风暴,Dreams委托David律所已立案,速避雷
  • 历史数据分析——贵州茅台
  • LeetCode[106]从中序和后序遍历序列构造二叉树
  • Sngine 4.0.4海外社交平台PHP源码 – 多语言支持短视频和博客订阅(源码下载)
  • [学习] 多项滤波器在信号插值和抽取中的应用:原理、实现与仿真(完整仿真代码)
  • 使用Three.js创建炫酷的3D玻璃质感动态效果