Python函数将列表附加到字典中的键

Python函数将列表附加到字典中的键,python,list,dictionary,Python,List,Dictionary,我有一本带钥匙的字典。键的对应值可以是列表/字典/字符串 如果它是一个列表,则目标是:将另一个列表(将从另一个字典键获取)附加到该键的现有列表中 如果是字符串/字典,则目标是:覆盖其上的新字符串/字典 关于如何实现这一目标有什么建议吗 编辑: 很抱歉没有提供一个例子 假设我有一本字典 { "names" : ["John","Tyler","Peter"], "Institution" :{ "name" : "St. John's Busines

我有一本带钥匙的字典。键的对应值可以是列表/字典/字符串

如果它是一个列表,则目标是:将另一个列表(将从另一个字典键获取)附加到该键的现有列表中

如果是字符串/字典,则目标是:覆盖其上的新字符串/字典

关于如何实现这一目标有什么建议吗

编辑:

很抱歉没有提供一个例子

假设我有一本字典

{
  "names" :  ["John","Tyler","Peter"],
  "Institution" :{
                   "name" : "St. John's Business School",
                   "address" : "34 Janson Drive"
                  }
}
B作为

{
 "names" : ["Alice","Joanna"],
 "class" :  "Economics",
 "Institution" : {
                   "name" : "St. Mary's Republic",
                   "address" : "88, Weston Road"
                  }
}
现在我想要实现的是:

我将遍历B

如果密钥不在A中(如“类”),我会将其添加到A中

如果它存在并且它的值是字符串/dict,我将用B中的值替换a中的值(与“Institution”一样)

如果它存在,并且它的值是一个列表,我将把B中的列表附加到a中的列表(如“名称”中所做)

因此,在我的函数完成后,最终的字典将如下所示:

{
  "names" : ["John","Tyler","Peter","Alice","Joanna"]
  "class" : "Economics",
  "Institution" : {
                       "name" : "St. Mary's Republic",
                       "address" : "88, Weston Road"
                      }
}
我已设法使字符串/dict条件正确。但我无法附加到现有列表中


有什么建议吗?提前感谢

在迭代字典时,您可以使用
isinstance
type
函数检查它是列表、字典还是字符串,然后您可以根据它们的类型执行操作

示例代码

 d = {'a':[1,2,3], 'b':{'k1': 'v1', 'k2':'v2'}, 'c':'string1'}

l2 = [4,5,6]
d2 = {'k3':'v3', 'k4':'v4'}
c2 = 'string2'
for i in d:
    if type(d[i]) is list:
        d[i].append(l2)
    elif type(d[i]) is dict:
        d[i] = d2
    elif type(d[i]) is str:
        d[i] = c2
    else:
        pass

你有没有什么代码可以给我们看看到底需要什么

如果只是将列表作为值附加到dict中的现有键或新键,那么这可能会起作用:

myDict["movies"].append(['Jurassic Park 4'])

这可能行得通,但再说一次,你是否有什么具体的事情需要通过听写/列表理解来完成。

我希望我能得到你想要的。如果还有别的,你可以用

data = {'a','b','c'}
another_list = {'b','d','e'}

if type(data) is list: 
    data.append(another_list)
elif type(data) is dict:
    data.append(overwrite_the_new_string
else: 
    print("your object is not a list/dict") 
输出

{'a': 'New string', 'b': [1, 2, ['a', 'b']], 'c': 'This was a dictionary'}

你有没有任何你想做的事情的例子?你已经完美地描述了一个做你想做的事情的算法。您在将其转换为代码时遇到了什么具体问题?请提供您的代码并描述您遇到的具体问题。
{'a': 'New string', 'b': [1, 2, ['a', 'b']], 'c': 'This was a dictionary'}