python - 如何将多个元素作为值附加到字典中

标签 python dictionary

假设我有一本字典:

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

关于python - 如何将多个元素作为值附加到字典中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59069763/

相关文章:

javascript - 在 Javascript 中访问柱形图的数组时出现问题

java - 想要根据对象键对 map 进行排序

python - 如何让 Python 区分相等的整数

python 库 'json' 打印所有内容两次

python - 如何使用python或django知道浏览器支持cookie

python - GPyOpt 的 "First Step"示例应该找到最小值吗?

python - 引用二维列表中每个列表的第 i 个元素

c++ - 用于高效查找通用字符串的 map 或 hashmap?

C++ 多类型映射,如 PHP stdClass

python - 无法读取远程 Ubuntu 服务器上 flask 中保存的机器学习模型