我正在使用Python3.5迭代字典。我试图在下面的数据集中检查某些条件,如果条件不真实或者没有数据来评估条件,则返回一条消息
data = {
"Barry": {
"Title": "CTO",
"YOB": 1980,
"Direct_Reports": ["Hannah"],
"Awards": ["Tech Innovator", "Best CTO"],
"Salary": 1200000
},
"Joe": {
"Title": "Data Scientist",
"YOB": 1981,
"Salary": 200000
},
"Bill": {
"Title": "Senior Software Engineer",
"YOB": 1993,
"Direct_Reports": [],
"Awards": ["Employee of the Month"]
},
"Jose": {
"Job": "Full Stack Engineer",
"YOB": 1996,
"Direct_Reports": ["John", "Hannah"]
},
}
例如,我可以遍历字典以打印列出的人的姓名:
for name in data.keys():
print (name)
或者
for name in data.items():
print (name[1]['YOB'])
得到每个人的出生年份
但是,如果我跑
for name in data.items():
print (name[1]["Salary"])
这给了我一个错误,因为数据没有捕捉到每个人的工资,就像不是每个人都收到了奖。 我怎么能这样做,或者只为高于某个门槛的人(例如50万人)提取工资
你需要看看字典里有没有“薪水”,比如:
您可以使用列表理解根据以下条件筛选列表项:
[ (k, v) for k, v in data.items() if "Salary" in v ]
相关问题 更多 >
编程相关推荐