将两个列表转为字典的方法有多种,下面一一给大家做个介绍:
第一种方法,使用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如何获取磁盘中文件的大小








评论