检查嵌套字典中的键

2024-06-17 11:59:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试检查嵌套字典中的键,并相应地添加键/值。 比方说,我有以下几点

mydict = [{'GradeA' : {'kim' : '10'}}, {'GradeB' : {'Patrick' : 'val23'}, {'Putty' : 'val40'}}, {'GradeC' : {'John' : 'val8'}}, {'GradeD' : {'Tim' : 'Val5'}}]

如果输入键是分级的,则为50。然后它应该添加到该键,如下所示:

       mydict= [{'GradeA' : {'kim' : '10'}}, {'GradeB' : {'Patrick' : 'val23'}, {'Putty' : 'val40'}}, {'GradeC' : {'John' : 'val8'}}, {'GradeD' : {'Tim' : 'Val5'}, {'Kate' : 'val50'}}]

如果输入键是grade,则为Kim val27。那么它应该如下所示:

       mydict= [{'GradeA' : {'kim' : '10'}}, {'GradeB' : {'Patrick' : 'val23'}, {'Putty' : 'val40'}}, {'GradeC' : {'John' : 'val8'}}, {'GradeD' : {'Tim' : 'Val5'}, {'Kate' : 'val50'}}, {'GradeE' : {'kim' : 'val27'}}]

如果输入键是GradeA,则输入10。那么它应该如下所示:

         mydict= [{'GradeA' : {'kim' : 'val10'}}, {'GradeB' : {'Patrick' : 'val23'}, {'Putty' : 'val40'}}, {'GradeC' : {'John' : 'val8'}}, {'GradeD' : {'Tim' : 'Val5'}, {'Kate' : 'val50'}}, {'GradeE' : {'kim' : 'val27'}}] 

很高兴听到一些建议。提前多谢了


Tags: johnmydicttimputtykimpatrickkateval5
1条回答
网友
1楼 · 发布于 2024-06-17 11:59:33

您的第一个语句中有语法错误

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

相关问题 更多 >