Python列表,元组,字典之间的实例转换

列表嵌套列表,列表嵌套元组,转列表嵌套字典的用法是一样的
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'}]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值