假设我有一个类似于下面的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回溯(最近的调用 最后)在() 19打印键,值[键] 20 --->;21获取信息('Aya')
在get\ U info(名称)中 8 9 def get\ U info(名称): --->;10表示键,示例中的值: 11印刷体(姓名) 12如果类型(值)是dict:
ValueError:要解包的值太多
它应该像使用这样的函数一样简单:
然后在函数中使用您的任何名字都可以按照您的意愿工作:
这里有很多潜在的陷阱,但是如果没有更多关于数据的假设的细节,你可以用一行dict理解来满足这个特定的案例:
相关问题 更多 >
编程相关推荐