簡體   English   中英

Python:從字典中提取條件信息

[英]Python: Extracting Conditional Information from a Dictionary

我正在使用Python 3.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"])

它給了我一個錯誤,因為數據無法捕獲每個人的薪水,就像不是每個人都獲得了獎勵一樣。 我該如何去做,或者只為某個特定閾值(例如500000)以上的人提取薪水?

您可以使用列表推導根據條件過濾列表的項目:

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

您需要查看字典中是否包含“薪水”,例如:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM