我正在创建一个需要内部条件的字典。因此,在这里,我有一个保存一些值的 arr_temp,并且我想根据 arr_temp 中的元素设置paired_vals(现在仅适用于一种情况)。
我尝试了 if 语句,但遇到了无法在理解中使用 elif 的错误。现在我只是在各处添加 paired_vals_mass
,但这对我的情况来说是错误的,因为我有几个值来补充 arr_temp
中的每个元素。
谁能建议一个好方法来实现它?
report['conditions'][condname] =
{findings: [{'name': x, 'parameters': paired_vals_mass} for x in arr_temp]}
最佳答案
这是在推导式中实现 elif
的方式:
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'}
如您所见,没有 elif
,而是嵌套的 if
。即使在这种简单的情况下,代码的可读性也会降低。
更好的选择是选择器 函数
,如下所示:
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'}
关于python - Python 中 elif 的字典理解?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45731769/