如何根据嵌套字典和元组中的指定值获取密钥

2024-09-29 20:18:53 发布

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

我是Python中的statsmodels函数,它返回一个嵌套字典和其中的元组。我想根据一个特定的值来查找主键值,但我似乎无法找到它,因为字典是多嵌套的,其中包含看起来像元组的内容

字典名为=testresult,它返回值0.06066703605850239作为输出。我想将其映射回与之相关的高级密钥,但尝试类似于此的操作会返回“密钥不存在”,即找不到值:

def GetKey(val):
   for key, value in testresult.items():
      if val == value:
         return key
      return "key doesn't exist"
print(GetKey(0.06066703605850239)) 

字典的实际输出如下。仅显示前三个键。我所要做的就是将高级键映射回valye,这里是键2,即匹配在这一行 “'ssr_chi2test':(5.604709583431151,0.06066703605850239,2)”映射回键2

测试结果输出:

{1: ({'ssr_ftest': (2.8419033957600366, 0.09231901211324843, 645.0, 1),
   'ssr_chi2test': (2.8551215510891534, 0.09108335476517923, 1),
   'lrtest': (2.84885005932847, 0.09143931932517006, 1),
   'params_ftest': (2.8419033957602227, 0.09231901211323784, 645.0, 1.0)},
  [<statsmodels.regression.linear_model.RegressionResultsWrapper at 0x1570bc161c8>,
   <statsmodels.regression.linear_model.RegressionResultsWrapper at 0x1570b993d08>,
   array([[0., 1., 0.]])]),
 2: ({'ssr_ftest': (2.780698263186089, 0.06274205544426932, 642.0, 2),
   'ssr_chi2test': (5.604709583431151, 0.06066703605850239, 2),
   'lrtest': (5.580573162296787, 0.061403614274963624, 2),
   'params_ftest': (2.780698263186609, 0.0627420554442373, 642.0, 2.0)},
  [<statsmodels.regression.linear_model.RegressionResultsWrapper at 0x1570bc78cc8>,
   <statsmodels.regression.linear_model.RegressionResultsWrapper at 0x1570bc6c448>,
   array([[0., 0., 1., 0., 0.],
          [0., 0., 0., 1., 0.]])]),
 3: ({'ssr_ftest': (2.1251237213749516, 0.09582281329876917, 639.0, 3),
   'ssr_chi2test': (6.445210910836708, 0.09184847479199953, 3),
   'lrtest': (6.4132709026562225, 0.09314635939984041, 3),
   'params_ftest': (2.125123721374674, 0.09582281329880636, 639.0, 3.0)},
  [<statsmodels.regression.linear_model.RegressionResultsWrapper at 0x1570bc60d48>,
   <statsmodels.regression.linear_model.RegressionResultsWrapper at 0x1570bc60e88>,
   array([[0., 0., 0., 1., 0., 0., 0.],
          [0., 0., 0., 0., 1., 0., 0.],
          [0., 0., 0., 0., 0., 1., 0.]])])

我一直在努力解决这个问题,并且花了很多时间试图解决这个问题,所以任何帮助都会非常有用并且节省时间。我正在使用Python 3.7

谢谢

卢卡斯


Tags: keymodel字典paramsarrayat元组linear
1条回答
网友
1楼 · 发布于 2024-09-29 20:18:53

你需要找到合适的元素

def GetKey(val):
    for key, value in testresult.items():
        for tpl in value[0].values():
            if val in tpl:
                return key
    return "key doesn't exist"

print(GetKey(0.06066703605850239)) 
2

相关问题 更多 >

    热门问题