Python 中 elif 的字典理解?

Ali*_*sch 4 python

我正在创建一本需要内部条件的字典。所以在这里,我持有arr_temp一些值,并且我想根据中的元素设置paired_vals arr_temp(现在仅适用于一种情况)。我尝试了if声明,但遇到了无法elif在理解中使用的错误。现在我只是paired_vals_mass在各处添加,但这对我的情况来说是错误的,因为我有几个值可以补充 中的每个元素arr_temp。谁能建议一个好方法来实现它?

report['conditions'][condname] = 
{findings: [{'name': x, 'parameters': paired_vals_mass} for x in arr_temp]}
Run Code Online (Sandbox Code Playgroud)

Ev.*_*nis 7

elif这是在理解中实现 an 的方式:

a = {x: 'negative' if x < 0 else 'positive' if x > 0 else 'zero' for x in range(-2, 2)}
print(a)  # {0: 'zero', 1: 'positive', -1: 'negative', -2: 'negative'}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,只有elif一个嵌套的if. 即使在这种简单的情况下,代码的可读性也会降低。

更好的选择是像这样的选择器: function

def selector(x):
    if x < 0:
        return 'negative'
    elif x == 0:
        return 'zero'
    else:
        return 'positive'

a = {x: selector(x) for x in range(-2, 2)}
print(a)  # {0: 'zero', 1: 'positive', -1: 'negative', -2: 'negative'}
Run Code Online (Sandbox Code Playgroud)