如何在字典中附加多个元素作为值

2024-05-13 20:11:11 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一本字典:

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)


Tags: 字典keysvaluesperjensolarowlingliv
3条回答

使用值为列表的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']}

您可以使用以下代码:

favorittForfattere={'Per':'Christie','Kari':'Ibsen','Liv':'Rowling','Ola':'Ibsen','Anne':'Allende', 'Jens':'Christie'}
dictionary={}
for i in favorittForfattere:
    if favorittForfattere[i] not in dictionary:
        dictionary[favorittForfattere[i]]=[]
    dictionary[favorittForfattere[i]].append(i)

输出:

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

像这样的?你知道吗

def fans(favorittForfattere):
    nyFortegnelse = {}
    for k, v in favorittForfattere.items():
        nyFortegnelse[v] = nyFortegnelse.get(v, [])
        nyFortegnelse[v].append(k)
    return nyFortegnelse

相关问题 更多 >