python - 如果值等于给定字典中的键,我如何将第一个键的值附加到所述值的键

标签 python list dictionary

首先,我很抱歉标题令人困惑,但让我们假设我们有一本字典:

dict = {'Parent': 'Grandparent', 'Daughter': 'Parent', 'Son': 'Parent'}

我如何达到这个输出?

new_dict = {'Parent': 'Grandparent', 'Daughter': ['Parent', 'Grandparent'], 'Son': ['Parent', 'Grandparent']}

我在想这个:

for key in dict:
     for value in dict.values():
       if key == value: #I didn't use 'in' because the string 'Parent' is part of 'Grandparent
         #some action

感谢您的宝贵时间!

最佳答案

这个解决方案对我来说似乎很 Pythonic:

dict_ = {'Parent': 'Grandparent', 'Daughter': 'Parent', 'Son': 'Parent'}

new_dict = {
    k: list(set(v for v in dict_.values()
    if v != k)) for k,v in dict_.items()
}

请注意:不要给您的字典 dict 名称,因为这是一个关键字,您可能会遇到麻烦。

关于python - 如果值等于给定字典中的键,我如何将第一个键的值附加到所述值的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58836971/

相关文章:

python .count : Can't find correct syntax to count\n

python - 如何在Python中使用zip和map编写csv文件?

python - 在 Mongodb 中表示互惠关系

python - BeautifulSoup 实例化超时?

python - 以与 sorted(, key=) 相同的方式对 numpy 数组进行排序

python - 遍历堆栈(反向列表),是否有 isempty() 方法?

r - 在 R 中将具有各种长度向量的列表转换为 data.frame 的最简单方法

python - 比较两个不同类别的列表并根据属性删除

python:循环每个键有多个值的字典

dictionary - 如何将接口(interface){}转换为结构指针?