列表嵌套列表,列表嵌套元组,转列表嵌套字典的用法是一样的 cases = [ ['case id', 'case title', 'url', 'data', 'excepted'], [1, '用例1', 'www.baudi.com', '001', 'ok'], [2, '用例2', 'www.baudi.com', '002', 'ok'], [3, '用例3', 'www.baudi.com', '002', 'ok'], [4, '用例4', 'www.baudi.com', '002', 'ok'], [5, '用例5', 'www.baudi.com', '002', 'ok'], ]cases = [ ('case id', 'case title', 'url', 'data', 'excepted'), (1, '用例1', 'www.baudi.com', '001', 'ok'), (2, '用例2', 'www.baudi.com', '002', 'ok'), (3, '用例3', 'www.baudi.com', '002', 'ok'), (4, '用例4', 'www.baudi.com', '002', 'ok'), (5, '用例5', 'www.baudi.com', '002', 'ok'), ]# 要求一:把上述数据转换为以下格式 res1 = [ {'case_id': 1, 'case_title': '用例1', 'url': 'www.baudi.com', 'data': '001', 'excepted': 'ok'}, {'case_id': 4, 'case_title': '用例4', 'url': 'www.baudi.com', 'data': '002', 'excepted': 'ok'}, {'case_id': 2, 'case_title': '用例2', 'url': 'www.baudi.com', 'data': '002', 'excepted': 'ok'}, {'case_id': 3, 'case_title': '用例3', 'url': 'www.baudi.com', 'data': '002', 'excepted': 'ok'}, {'case_id': 5, 'case_title': '用例5', 'url': 'www.baudi.com', 'data': '002', 'excepted': 'ok'} ]
方法一:不用循环与函数
cases = [
['case id', 'case title', 'url', 'data', 'excepted'],
[1, '用例1', 'www.baudi.com', '001', 'ok'],
[2, '用例2', 'www.baudi.com', '002', 'ok'],
[3, '用例3', 'www.baudi.com', '002', 'ok'],
[4, '用例4', 'www.baudi.com', '002', 'ok'],
[5, '用例5', 'www.baudi.com', '002', 'ok'],
]
dict1 = {cases[0][0]:cases[1][0],
cases[0][1]:cases[1][1],
cases[0][2]:cases[1][2],
cases[0][3]:cases[1][3],
cases[0][4]:cases[1][4],
}
dict2 = {cases[0][0]:cases[2][0],
cases[0][1]:cases[2][1],
cases[0][2]:cases[2][2],
cases[0][3]:cases[2][3],
cases[0][4]:cases[2][4],
}
dict3 = {cases[0][0]:cases[3][0],
cases[0][1]:cases[3][1],
cases[0][2]:cases[3][2],
cases[0][3]:cases[3][3],
cases[0][4]:cases[3][4],
}
dict4 = {cases[0][0]:cases[4][0],
cases[0][1]:cases[4][1],
cases[0][2]:cases[4][2],
cases[0][3]:cases[4][3],
cases[0][4]:cases[4][4],
}
dict4 = {cases[0][0]:cases[5][0],
cases[0][1]:cases[5][1],
cases[0][2]:cases[5][2],
cases[0][3]:cases[5][3],
cases[0][4]:cases[5][4],
}
res1 = []
res1.extend([dict1,dict2,dict3,dict4])
print(res1)
方法二:使用 for 循环与 zip 函数
cases = [
['case id', 'case title', 'url', 'data', 'excepted'],
[1, '用例1', 'www.baudi.com', '001', 'ok'],
[2, '用例2', 'www.baudi.com', '002', 'ok'],
[3, '用例3', 'www.baudi.com', '002', 'ok'],
[4, '用例4', 'www.baudi.com', '002', 'ok'],
[5, '用例5', 'www.baudi.com', '002', 'ok'],
]
res1 = []
for i in range(len(cases)-1):
res1.append(dict(zip(cases[0],cases[i+1])))
print(res1)
方法三:与方法二类似,就是写法不同
cases = [
('case id', 'case title', 'url', 'data', 'excepted'),
(1, '用例1', 'www.baudi.com', '001', 'ok'),
(2, '用例2', 'www.baudi.com', '002', 'ok'),
(3, '用例3', 'www.baudi.com', '002', 'ok'),
(4, '用例4', 'www.baudi.com', '002', 'ok'),
(5, '用例5', 'www.baudi.com', '002', 'ok'),
]
res1 = []
list1 = cases[0] # 先把列表中的第一个元素拿出来
for i in cases[1:]: # 循环cases列表中的第二个到最后一个元素
res1.append(dict(zip(list1,i))) #依次转换成字典增加到列表中
print(res1)
方法四:用 for 循环与 enumrate() 函数实现
import pprint
cases = [
['case id', 'case title', 'url', 'data', 'excepted'],
[1, '用例1', 'www.baudi.com', '001', 'ok'],
[2, '用例2', 'www.baudi.com', '002', 'ok'],
[3, '用例3', 'www.baudi.com', '002', 'ok'],
[4, '用例4', 'www.baudi.com', '002', 'ok'],
[5, '用例5', 'www.baudi.com', '002', 'ok'],
]
title = cases[0] # 把一行内容取出
res1 = [] # 定义一个空列表,用来放新内容
for i in cases[1:]: # 从第二行循环到最后一行
dict1 = {} # 定义一个空字典,用来放新转换出来的内容(注意一定要放在循环里,因为放到外面,字典的值只存最后一次赋值内容)
for j,k in enumerate(i): # j 是列表的索引(0,1,2,3,4),k 是列表的值 (1, '用例1', 'www.baudi.com', '001', 'ok')
dict1[title[j]] = k # 按索引把内容一一添加到字典里
res1.append(dict1) # 把循环一次的内容添加到空列表中
pprint.pprint(res1)
说一下pprint(),打印出来比较好看,不是全显示在一行上
from pprint import pprint # import pprint 先导入模块,两种方法
cases = [{'case id': 1, 'case title': '用例1', 'data': '001', 'excepted': 'ok', 'url': 'www.baudi.com'},
{'case id': 2, 'case title': '用例2', 'data': '002', 'excepted': 'ok', 'url': 'www.baudi.com'},
{'case id': 3, 'case title': '用例3', 'data': '002', 'excepted': 'ok', 'url': 'www.baudi.com'},
{'case id': 4, 'case title': '用例4', 'data': '002', 'excepted': 'ok', 'url': 'www.baudi.com'},
{'case id': 5, 'case title': '用例5', 'data': '002', 'excepted': 'ok', 'url': 'www.baudi.com'}]
pprint(cases) # pprint.pprint(cases)
运行结果:
[{'case id': 1,
'case title': '用例1',
'data': '001',
'excepted': 'ok',
'url': 'www.baudi.com'},
{'case id': 2,
'case title': '用例2',
'data': '002',
'excepted': 'ok',
'url': 'www.baudi.com'},
{'case id': 3,
'case title': '用例3',
'data': '002',
'excepted': 'ok',
'url': 'www.baudi.com'},
{'case id': 4,
'case title': '用例4',
'data': '002',
'excepted': 'ok',
'url': 'www.baudi.com'},
{'case id': 5,
'case title': '用例5',
'data': '002',
'excepted': 'ok',
'url': 'www.baudi.com'}]