This question already has answers here:
Transpose values and key in python dictionary when values are not unique [duplicate]
                                
                                    (4个答案)
                                
                        
                                18天前关闭。
            
                    
可以说我有一本字典:

favorittForfattere={'Per':'Christie','Kari':'Ibsen', \
 'Liv':'Rowling','Ola':'Ibsen', \
'Anne':'Allende', 'Jens':'Christie'}


我想用这个字典创建一个函数,从该字典中获取键和值,然后将它们附加到在函数中创建的新字典中。先前词典的值将是新词典中的键。先前词典中的键将是新词典中的值。

公开的结果将是这样

{'Christie': ['Per', 'Jens'], 'Ibsen': ['Kari', 'Ola'], 'Rowling': ['Liv'], 'Allende': ['Anne']}



到目前为止,这是我的代码

def fans(favorittForfattere):
    nyFortegnelse = {}
    for keys, values in favorittForfattere.items():
        nyFortegnelse.update({values:keys})
    print(nyFortegnelse)


我该如何解决这个问题?

这是整个代码片段,因此有意义

favorittForfattere={'Per':'Christie','Kari':'Ibsen', \
 'Liv':'Rowling','Ola':'Ibsen', \
'Anne':'Allende', 'Jens':'Christie'}

def fans(favorittForfattere):
    nyFortegnelse = {}
    for keys, values in favorittForfattere.items():
        nyFortegnelse.update({values:keys})
    print(nyFortegnelse)

fans(favorittForfattere)

最佳答案

dict.setdefault与值一起用作列表。

例如:

favorittForfattere={'Per':'Christie','Kari':'Ibsen', 'Liv':'Rowling','Ola':'Ibsen', 'Anne':'Allende', 'Jens':'Christie'}

def fans(favorittForfattere):
    nyFortegnelse = {}
    for key, value in favorittForfattere.items():
        nyFortegnelse.setdefault(value, []).append(key)
    print(nyFortegnelse)

fans(favorittForfattere)


输出:

{'Allende': ['Anne'],
 'Christie': ['Per', 'Jens'],
 'Ibsen': ['Kari', 'Ola'],
 'Rowling': ['Liv']}

09-25 22:21