首頁  >  問答  >  主體

请教,关于python字典,合并相同值的键的实现方法

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}

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

天蓬老师天蓬老师2740 天前842

全部回覆(3)我來回復

  • 天蓬老师

    天蓬老师2017-04-18 10:22:47

    這樣看可以嗎?

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-18 10:22:47

    題主也沒有說清楚是從哪一步開始轉換,如果從一開始列表時就往這個目的操作,那這個問題實則不難。

    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}

    回覆
    0
  • ringa_lee

    ringa_lee2017-04-18 10:22:47

    python3

    setdefault

    雷雷

    回覆
    0
  • 取消回覆