Skip to main content
 首页 » 编程设计

python之如何在另一个字典中的 Python 字典中查找特定项目

2025年05月04日25grandyang

假设我有一个 Python 字典,如下所示:

sample_dict = {'Grade': {'Aya':4.0, 'John':3.0, 'Anna':1.0}, 
     'Address': {'Aya':'California', 'John':'Canada', 'Anna':'Mexico'}, 
     'School': 'Harvard University', 
     'Nationality':{'Aya':'Japanese', 'John':'American', 'Anna':'American'} 
    } 

我很困惑如何操纵代码,我将传递参数以进行搜索例如Aya 它会导致类似下面的结果:

Grade: Aya: 4.0 
Address: Aya:California 
School: Harvard University 
Nationality: Aya: Japanese 

更好的是:

Aya 
Grade: 4.0 
Address: California 
School: Harvard University 
Nationality: Japanese 

这是我的开始:

def get_info(name): 
    for key, value in sample_dict: 
        print(name) 
        if type(value) is dict: 
            for people, equivalent in value: 
                if(equivalent[name]): 
                    print key, equivalent[name]  
                else: 
                    print ("Not Found!") 
        else: 
            print key, value[key] 

{'Grade': {'John': 3.0, 'Aya': 4.0, 'Anna': 1.0}, 'Nationality': {'John': 'American', 'Aya': 'Japanese', 'Anna': 'American'}, 'School': 'Harvard University', 'Address': {'John': 'Canada', 'Aya': 'California', 'Anna': 'Mexico'}}


ValueError Traceback(最近调用 最后)在() 19 打印键,值[键] 20 ---> 21 get_info('阿雅')

在 get_info(名称) 中 8个 9 def get_info(名称): ---> 键值 10,sample_dict 中的值: 11 打印(姓名) 12 如果类型(值)是字典:

ValueError:要解压的值太多

请您参考如下方法:

这里有很多潜在的陷阱,但是没有关于可以对数据做出什么假设的更多详细信息,您可以通过单行字典理解来满足这种特定情况:

{k:(v['Aya'] if 'Aya' in v else v) for k,v in sample_dict.items()}