recherche

Maison  >  Questions et réponses  >  le corps du texte

请教,关于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}

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

天蓬老师天蓬老师2866 Il y a quelques jours918

répondre à tous(3)je répondrai

  • 天蓬老师

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

    Est-il acceptable de voir les choses de cette façon ?

    répondre
    0
  • 天蓬老师

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

    L'intervenant n'a pas précisé à partir de quelle étape démarrer la conversion. Si vous travaillez vers cet objectif dès le début de la liste, alors ce problème n'est en fait pas difficile.

    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}

    répondre
    0
  • ringa_lee

    ringa_lee2017-04-18 10:22:47

    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]}
    >>> 

    répondre
    0
  • Annulerrépondre