我正在创建一本需要内部条件的字典。所以在这里,我持有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)
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)