当前位置: 首页 > 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"
          }

相关文章:

  • 英伟达诉求1亿IOPS SSD:打破AI算力存储瓶颈
  • 源码开发详解:搭建类似抖音小店的直播带货APP需要掌握哪些技术?
  • 强化学习入门:价值、回报、策略概念详解
  • 本地密码生成管理工具,自定义生成密码
  • AI绘画能发展到企业大规模使用的地步么?
  • 毛纪逆向分析
  • 如何识别并管理多项目环境下的潜在风险
  • typora图片左对齐
  • archlinux安装详细过程(不用翻墙, 中文输入法, 企业微信, 微信等常用软件安装)
  • 函数调用过程中的栈帧变化
  • Softhub软件下载站实战开发(二):项目基础框架搭建
  • 【FineDance】训练:accelerate config 的作用
  • 项目管理工具在并行管理中如何充分发挥作用
  • c++中vector的使用
  • 性能测试详解
  • Java面向对象this关键字和static关键字
  • 【LUT技术专题】4DLUT代码讲解
  • 单测时如何让 mock 的接口在长链路调用时一直生效
  • XCTF-misc-base64÷4
  • [直播推流] 编译 librtmp 库
  • 怎么登陆公司网站的后台/网站快速收录付费入口
  • 用flask做网站/网站模板中心
  • 做网站后期为什么续费/百度seo排名优化排行
  • 景区网站建设的意义/媒介
  • 找深圳网站建设/手机访问另一部手机访问文件
  • 青岛模板建站公司/安卓优化大师下载安装