将两个列表转为字典的方法有多种,下面一一给大家做个介绍:
第一种方法,使用zip函数
1、两个列表元素个数相同
list_one = ['name', 'age', 'sex'] list_two = ['张三', '10', '男'] dict_all = dict(zip(list_one, list_two)) print(dict_all)
结果:{'name': '张三', 'age': '10', 'sex': '男'}
2、两个列表元素个数不同
list_one = ['name', 'age', 'sex', 'school'] list_two = ['张三', '10', '男'] dict_all = dict(zip(list_one, list_two)) print(dict_all)
结果:{'name': '张三', 'age': '10', 'sex': '男'}
list_one = ['name', 'age', 'sex'] list_two = ['张三', '10', '男', 'China'] dict_all = dict(zip(list_one, list_two)) print(dict_all)
结果:{'name': '张三', 'age': '10', 'sex': '男'}
备注:只要两个列表的元素个数不相同,以元素个数最短的列表为准
第二种方法,使用map函数
list_one = ['name', 'age', 'sex'] list_two = ['张三', '10', '男'] dict_all = dict(map(lambda key, value: [key, value], list_one, list_two)) print(dict_all)
结果:{'name': '张三', 'age': '10', 'sex': '男'}
第三种方法,列表推导式
list_one = ['name', 'age', 'sex'] list_two = ['张三', '10', '男'] dict_all = {key: value for key, value in zip(list_one, list_two)} print(dict_all)
结果:{'name': '张三', 'age': '10', 'sex': '男'}
当list_one中有重复值,该怎么做呢?
第一种:
list1=['a','b','c','a'] list2=[1,2,3,4] dic={} for m,n in zip(list1,list2): if m in dic.keys(): dic[m].append(n) else: dic[m]=[n] print(dic)
结果:{'a': [1, 4], 'b': [2], 'c': [3]}
第二种:
list1=['a','b','c','a'] list2=[1,2,3,4] dic={} for m,n in zip(list1,list2): if m in dic.keys(): if type(dic[m])!=list: dic[m]=[dic[m]] dic[m].append(n) else: dic[m]=n print(dic)
结果:{'a': [1, 4], 'b': [2], 'c': [3]}
下一篇: 易语言如何判定开启的多线程已经全部运行完毕
上一篇:python如何获取磁盘中文件的大小
评论