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