亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何通過檢查字典中映射的鍵來獲取字典中的值

如何通過檢查字典中映射的鍵來獲取字典中的值

料青山看我應如是 2023-06-27 18:16:58
詞典如下my = {  "1": {    "exclude": 'A,B',    "column": "value",    "output": "Out1",    "Out1": "Cost",    "Out2": "Rev"  },  "2": {    "exclude": 'None',    "column": "value",    "output": "Out2",    "Out1": "Cost",    "Out2": "Rev"  }}我需要檢查列鍵值 (if lower(my[column])) == lower(value)我有exclude_list = ['A','B','C']我需要排除鍵,如果排除是“A”,請檢查exclude_list = ['A','B','C'] 取值B,C。如果排除鍵是“A,B”,則采用C示例中所示的值。我需要檢查output鍵是否output為鍵,Out1然后獲取值Out1并映射到EndOutput預期出局{'1': {'exclude': ['C'], 'EndOutput': 'Cost'}, '2': {'exclude': ['A', 'B', 'C'], 'EndOutput': 'Rev'}}exclude_list = ['A','B','C']for k,v in my.items():    if v['column'].lower() == 'value'.lower:
查看完整描述

1 回答

?
慕絲7291255

TA貢獻1859條經驗 獲得超6個贊

您可以迭代鍵 1,2 .. N for e in my:,然后借助set()差異計算排除:


并提取這樣的東西


 exc = set(['A','B','C']) - set(my[e]["exclude"].split(",") if len(my[e]["exclude"].split(",")) else [] )

接下來你可以取值out1orout2取決于outputas的值


my[e][my[e]["output"]]

在新字典中插入為


newdict[e] = {'exclude': list(exc) ,'EndOutput':my[e][my[e]["output"]]}

總的來說,這就是您可以迭代的方式


newdict = {}

for e in my:

     if my[e]['column'].lower() == 'value':

             exc = set(['A','B','C']) - set(my[e]["exclude"].split(",") if len(my[e]["exclude"].split(",")) else [] )

             newdict[e] = {'exclude': list(exc) ,'EndOutput':my[e][my[e]["output"]]}

打印 newdict 將產生此輸出


'1': {'EndOutput': 'Cost', 'exclude': ['C'] },

'2': {'EndOutput': 'Rev', 'exclude': ['A', 'B', 'C'] }}


查看完整回答
反對 回復 2023-06-27
  • 1 回答
  • 0 關注
  • 128 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號