基于另一个词典的bool创建词典列表的最具python风格的方法

2024-10-01 00:25:53 发布

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

这是我的情况——我有一本字典:

dic = {"al" : False,
       "ol" : True,
       "psc": True,
       "cp" : False}

然后我在其他地方定义了三个dict,我们可以想象我们导入了它们,因此它们作为变量存在于模块的名称空间中

 appointmentslist_params  # al 
 officerlist_params       # ol
 psc_params               # psc
 companyprofile_params    # cp

现在,我想创建一个包含这些dict的列表,该列表基于上述dict的bool

我目前的解决办法是:

params_ls = []
if dic["ol"]:
    params_ls.append(officerlist_params)
if dic["psc"]:
    params_ls.append(psc_params)
if dic["al"]:
    params_ls.append(appointmentslist_params)
if dic["cp"]:
    params_ls.append(companyprofile_params)

我只是想知道是否有一种更具python风格的方式——这种方式可读性很强,但不太枯燥


Tags: falsetrueifparamscplsdictal
1条回答
网友
1楼 · 发布于 2024-10-01 00:25:53

您可以使用另一个字典将导入的字典与相应的键相关联:

d1 = {'al':appointmentslist_params, 'ol':officerlist_params, 'psc':psc_params, 'cp':companyprofile_params}
dic = {"al" : False,
   "ol" : True,
   "psc": True,
   "cp" : False}

params_ls = [b for a, b in d1.items() if dic[a]]

相关问题 更多 >