Python如何根据列表创建字典并使一键对应多值?

代码如下:

list1 = ['000012','000017','000023', '000012']
list2 = ['-1','-1','-1', '2']
print(dict(zip(list1,list2)))

运行结果:

{'000012': '2', '000017': '-1', '000023': '-1'}

我想根据列表来创建字典一个一键映射多值的字典,就是想输出如下的样子:

{'000012': ['-1', '2'], '000017': '-1', '000023': '-1'}

就是需要将000012同时对应-1和2这两个值,应该怎么修改代码呀?谢谢。

list1 = ['000012','000017','000023', '000012']
list2 = ['-1','-1','-1', '2']

dic = {}
for k,v in zip(list1,list2):
    if k in dic:
        if type(dic[k]) != list:
            dic[k] = [dic[k]]
        dic[k].append(v)
    else:
        dic[k] = v
print(dic)

结果

{'000012': ['-1', '2'], '000017': '-1', '000023': '-1'}

 

list1 = ['000012','000017','000023', '000012']
list2 = ['-1','-1','-1', '2']

zd = {}
for index, item in enumerate(list2):
    print(list1[index])
    print(zd.get(list1[index]))
    sz = []
    if zd.get(list1[index]) == None:
        sz.append(item)
    else:
        sz = zd.get(list1[index]);
        sz.append(item)
    zd[list1[index]] = sz
print(zd)




 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y