玩蛇网提供最新Python编程技术信息以及Python资源下载!

怎么样能将dict中同样值的key合并为一个呢?

a = [1,2,3,4,5,6]
b = [7,7,9,8,8,8]
# 字典 dic_A 合并列表a,b。 
dic_A = dict(zip(a,b))
dic_A 
{1: 7, 2: 7, 3: 9, 4: 8, 5: 8, 6: 8}

我想 在字典dic_A中 将值相等的键合并,想要的到结果如下

dic_A = {12: 7, 3: 9, 456: 8}

请教一下,应该如何实现呢? 谢谢。

python3

setdefault

>>> a = [1,2,3,4,5,6]
>>> b = [7,7,9,8,8,8]
>>> d={}
>>> for k,v in zip(b,a):
    d.setdefault(k,[]).append(v)

    
>>> d
{8: [4, 5, 6], 9: [3], 7: [1, 2]}
>>> 

题主也没有说清楚是从哪一步开始转换,如果从一开始列表时就往这个目的操作,那这个问题实则不难。

from itertools import groupby
from functools import reduce

dic_a = {1: 7, 2: 7, 3: 9, 4: 8, 5: 8, 6: 8}

dica = dict([reduce(lambda v, e: (int(str(v[0])+str(e[0])), k), g) for k, g in 
groupby(dic_a.items(), lambda v: v[1])])
>>> dica
>>> {3: 9, 12: 7, 456: 8}

这样看可以吗?

玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/wenda/wd13997.html

相关文章 Recommend

玩蛇网Python互助QQ群,欢迎加入-->: 106381465 玩蛇网Python新手群
修订日期:2017年05月24日 - 19时46分02秒 发布自玩蛇网

您现在的位置: 玩蛇网首页 > Python问题解答 > 正文内容
我要分享到:

必知PYTHON教程 Must Know PYTHON Tutorials

必知PYTHON模块 Must Know PYTHON Modules