列表、元组、字典和集合


一、for循环遍历列表、元组、字典和集合

1.遍历列表

testList = [1,2,3,4,4]
for items in testList:
    print(items,end='-')

2.遍历元组

testTuple = (4,4,1,1,1)
for items in testTuple:
    print(items,end='-')

3.遍历字典

testDict = {'name':'xiaoxiao','age':8}
for key,value in testDict.items():
    print(key,value,end='-')

4.编辑集合

testSet = {1,2,3,4}
for items in testSet:
    print(items,end='-')

二、列表、元组、集合和字典相互转换

1.列表元组转化为集合(去重)

list1 = [1,2,2,3,3,4]
set1 = set(list1)
print(set1)
# {1, 2, 3, 4}

2.两个列表转字典

list1 = ["key1","key2","key3"]
list2 = ["1","2","3"]
dict1 = dict(zip(list1,list2))
print(dict1)
# {'key1': '1', 'key2': '2', 'key3': '3'}

3.嵌套列表转字典

list3 = [["key1","valu1"],["key2",'value2'],['key3','value3']]
dict1 = dict(list3)
print(dict1)
# {'key1': 'valu1', 'key2': 'value2', 'key3': 'value3'}

4.列表、元组转字符串

list1 = ['a','b','c']
str1 = " ".join(list1)
print(str1)
# a b c

tup1 = ('xu','xiao','xiao')
str2 = "-".join(tup1)
print(str2)
# xu-xiao-xiao

5.字典转为字符串

dic1 = {"name":"xiaoxiao","age":8}
str1 = str(dic1)
print(str1)
# {'name': 'xiaoxiao', 'age': 8}

6.字符串转换为列表

s = 'xiaoxiao'
list4 = list(s)
print(list4)
# ['x', 'i', 'a', 'o', 'x', 'i', 'a', 'o']

7.字符串转元组

s1 = 'xiao'
tup2 = tuple(s1)
print(tup2)
# ('x', 'i', 'a', 'o')

8.字符串转字典

s2 = "{'name':'xiao','age':8}"
dict2 = eval(s2)
print(dict2)
# {'name': 'xiao', 'age': 8}

9.切分字符串

s3 = 'a,b,c'
list5 = s3.split(',')
print(list5)
# ['a', 'b', 'c']

三、列表、元组、集合和字典各自使用场景举例

在Python接口自动化测试中,数据结构扮演着至关重要的角色,用于组织和处理测试数据、请求参数和响应结果。

1.列表使用场景

假设我们有多个用户的ID,需要通过接口获取每个用户的信息:

# 定义用户ID列表
user_ids = [1001, 1002, 1003]
# 对每个用户ID发起请求
for user_id in user_ids:
    response = requests.get(f"https://api.example.com/users/{user_id}")
    # 进行响应处理和断言验证
    assert response.status_code == 200
    # 解析响应体(这里假设返回的是JSON格式数据)
    user_info = response.json()
    # 验证用户信息
    assert 'name' in user_info and 'email' in user_info

2.字典一般用于构造请求参数和返回参数

在发送一个包含多个键值对的POST请求时,我们可以使用字典来封装请求体:

import json
import requests
# 定义要提交的数据
new_user_data = {
    'username': 'testuser',
    'email': 'testuser@example.com',
    'password': 'SecurePassword123!'
}
headers = {'Content-Type': 'application/json'}
# 发起POST请求
response = requests.post("https://api.example.com/users",
                         headers=headers,
                         data=json.dumps(new_user_data))
# 断言检查
assert response.status_code == 201  # 检查是否成功创建新用户

同样我们可以通过解析JSON响应并存储到字典

# 从API获得的JSON响应通常会被转换成Python字典以便于处理:
# 假设响应体如下:
response_json = '{"id": 1, "name": "John Doe", "roles": ["admin", "user"] }'
# 将JSON转换为字典
data_dict = json.loads(response_json)
# 访问和验证数据
assert data_dict['name'] == 'John Doe'
assert 'admin' in data_dict['roles']

3.使用元组存储固定不变的数据

在某些情况下,比如需要预设一组固定的认证信息,可以用元组表示不可变的数据:

# 配置认证信息
auth_credentials = ('admin', 'secret_password')
# 在请求时添加认证头
response = requests.get("https://api.example.com/private-data", auth=requests.auth.HTTPBasicAuth(*auth_credentials))
# 进行后续的断言验证

以上示例展示了在Python接口自动化测试中,列表、字典和元组是如何被灵活运用的。



参考

1、python系列之:列表、元组、集合、字典用法详解
2、python 接口自动化数据结构(如列表、字典、元组)



posted on 2024-03-26 12:25  雨点的名字  阅读(51)  评论(0编辑  收藏  举报