我正在尝试构建一个结合了两个词典的函数。应该很容易,但有一个问题。
给出两个词典:
info_format_dict={ name: (id, type1, type2, generation, legendary),
'Bulbasaur': (1, 'Grass', 'Poison', 1, False), 'Charmander': (4,
'Fire', None, 1, False)}
stats_format_dict={ id: (hp, attack, defense, speed),1: (45, 49, 49,
45)}
如果在两者中都找到了id号,我必须组合词典。所以在这个例子中,来自info_format_dict' Bulbasaur' id为1,在stats_format_dict中,1为id号。他们相配。然后我必须按以下格式将该项添加到新词典中:
new_dict={"Bulbasaur": (1, "Grass", "Poison", 45, 49, 49, 45, 1,
False)}
任何没有匹配的人都会被丢弃。我创建的函数将字典放入列表进行比较,但是一旦找到匹配项,我就会陷入如何进行实际组合的问题。我如何进行实际组合并且检查是否正确?
这是我的代码:
def combine_databases(info_format_dict,stats_format_dict):
statskeyslist=[]
idnums=[]
for key,values in info_format_dict.items():
idnum=values[0]
idnums.append(idnums)
for keys in stats_format_dict:
stats_key=keys
statskeyslist.append(keys)
for item in statskeyslist:
if item in idums:
#combine them into a dictionary
连连呢?溶液
答案 0 :(得分:0)
你的内循环内部都有键。 (你应该能够解释为什么,因为你在上面创建了它们!)为什么不尝试从每个字典中获取值并尝试将它们组合起来?
v1 = info_format_dict[item]
v2 = stats_format_dict[item]
您应该能够保证不会在此处抛出异常。 (为什么?)
然后你需要将它们粘贴到其他一些词典中才能返回。