Python:从字典中提取条件信息

2024-09-27 20:18:01 发布

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

我正在使用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万人)提取工资


Tags: 数据nameinfordata字典title条件
2条回答

你需要看看字典里有没有“薪水”,比如:

if "Salary" in name[1] and name[1]["Salary"]>500000:
   print(name)

您可以使用列表理解根据以下条件筛选列表项:

[ (k, v) for k, v in data.items() if "Salary" in v ]

相关问题 更多 >

    热门问题