我正在尝试检查嵌套字典中的键,并相应地添加键/值。 可以说,例如,我有以下内容
mydict = [{'GradeA' : {'kim' : '10'}}, {'GradeB' : {'Patrick' : 'val23'}, {'Putty' : 'val40'}}, {'GradeC' : {'John' : 'val8'}}, {'GradeD' : {'Tim' : 'Val5'}}]
如果输入键是GradeD,则输入Kate val50。然后应将其添加到该密钥,如下所示:
mydict= [{'GradeA' : {'kim' : '10'}}, {'GradeB' : {'Patrick' : 'val23'}, {'Putty' : 'val40'}}, {'GradeC' : {'John' : 'val8'}}, {'GradeD' : {'Tim' : 'Val5'}, {'Kate' : 'val50'}}]
如果输入键是GradeE,请输入Kim val27。然后应该如下所示:
mydict= [{'GradeA' : {'kim' : '10'}}, {'GradeB' : {'Patrick' : 'val23'}, {'Putty' : 'val40'}}, {'GradeC' : {'John' : 'val8'}}, {'GradeD' : {'Tim' : 'Val5'}, {'Kate' : 'val50'}}, {'GradeE' : {'kim' : 'val27'}}]
如果输入键为GradeA,请输入kim val10。然后应该如下所示:
mydict= [{'GradeA' : {'kim' : 'val10'}}, {'GradeB' : {'Patrick' : 'val23'}, {'Putty' : 'val40'}}, {'GradeC' : {'John' : 'val8'}}, {'GradeD' : {'Tim' : 'Val5'}, {'Kate' : 'val50'}}, {'GradeE' : {'kim' : 'val27'}}]
很高兴听到一些建议。提前谢谢。
答案 0 :(得分:1)
您的第一条语句中存在语法错误。
mydict = [{'GradeA' : {'Kim' : '10'}}, {'GradeB' : {'Patrick' : 'val23'}, {'Putty' : 'val40'}}, {'GradeC' : {'John' : 'val8'}}, {'GradeD' : {'Tim' : 'Val5'}}]
我认为应该读
mydict = [{'GradeA' : {'Kim' : '10'}}, {'GradeB' : {'Patrick' : 'val23', 'Putty' : 'val40'}}, {'GradeC' : {'John' : 'val8'}}, {'GradeD' : {'Tim' : 'Val5'}}]
如果应该输入错字“ kim”,您还没有解决?在我的回答中,我认为这是一个错误,如果不是错误,则必须转换为小写字母,并且需要进行某种比较。
下面的代码首先检查特定的年级是否存在,如果存在,则将条目添加到所包含的字典中。如果不是,则将新成绩和条目添加到列表中。
my_list = [{'GradeA' : {'Kim' : '10'}}, {'GradeB' : {'Patrick' : 'val23', 'Putty' : 'val40'}}, {'GradeC' : {'John' : 'val8'}}, {'GradeD' : {'Tim' : 'Val5'}}]
def manageList(grade, name, value):
search_list = False
for item in my_list:
if list(item.keys())[0] == grade:
item[grade][name] = value
search_list = True
else:
pass
if search_list:
pass
else:
my_list.append({grade: {name: value}})
manageList('GradeD', 'Kate', 'val50')
print(my_list)
manageList('GradeE', 'Kim', 'val27')
print(my_list)
manageList('GradeA', 'Kim', 'val10')
print(my_list)
输出
[{'GradeA': {'Kim': '10'}}, {'GradeB': {'Patrick': 'val23', 'Putty': 'val40'}}, {'GradeC': {'John': 'val8'}}, {'GradeD': {'Tim': 'Val5', 'Kate': 'val50'}}]
[{'GradeA': {'Kim': '10'}}, {'GradeB': {'Patrick': 'val23', 'Putty': 'val40'}}, {'GradeC': {'John': 'val8'}}, {'GradeD': {'Tim': 'Val5', 'Kate': 'val50'}}, {'GradeE': {'Kim': 'val27'}}]
[{'GradeA': {'Kim': 'val10'}}, {'GradeB': {'Patrick': 'val23', 'Putty': 'val40'}}, {'GradeC': {'John': 'val8'}}, {'GradeD': {'Tim': 'Val5', 'Kate': 'val50'}}, {'GradeE': {'Kim': 'val27'}}]