首页 python正文

如何将两个列表转化为一个字典,作为键的列表有重复值

启明SEO python 2024-07-22 12:03:51 507 0 列表字典

将两个列表转为字典的方法有多种,下面一一给大家做个介绍:

第一种方法,使用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好学公众号

好文推荐

实时访客入口页面出现bd_vid=标识是什么原因

实时访客入口页面出现bd_vid=标识是什么原因

最近查看百度实时访客,总是会看到入口页面会多......

有了微信视频号,但是没有发布权限,怎么开通

有了微信视频号,但是没有发布权限,怎么开通

视频号是微信在2020年1月19号开始内测的......

如何用python抓取爱企查企业信息

如何用python抓取爱企查企业信息

前段时间,经理让我去找一些企业的信息,我平常......

服务器配置低,宝塔面板安装IIS总是安装不上怎么办

服务器配置低,宝塔面板安装IIS总是安装不上怎么办

对于一般企业网站或者博客来说,对服务器的配置......

如何修改浏览器指纹,Canvas指纹、Webgl指纹、Audio指纹修改方法?

如何修改浏览器指纹,Canvas指纹、Webgl指纹、Audio指纹修改方法?

修改浏览指纹的方法其实也是很简单,主要使用到......

网站始终只收录一个首页,为什么

网站始终只收录一个首页,为什么

新做了两个网站,但是一直只是收录一个首页,快......