如何通过检查字典中映射的键来获取字典中的值

词典如下


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:


料青山看我应如是
浏览 96回答 1
1回答

慕丝7291255

您可以迭代键 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'] }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python