k3n*_*jiy 3 python if-statement idioms idiomatic
我有一个函数,可以查看值是更大,更小还是等于零,并根据结果返回三种颜色之一.此外,如果存在某个属性,它不会返回三种颜色中的一种,而是单独的第四种颜色.我这样解决了:
def set_colour(x, trigger=False):
if x > 0.0:
colour = 'green'
elif x < 0.0:
colour = 'red'
else:
colour = 'black'
if trigger:
colour = 'blue'
return colour
Run Code Online (Sandbox Code Playgroud)
但我不喜欢它.有更好的方式,更优雅,高效和pythonic?我发现这篇文章非常有趣,但不能使用字典,因为我没有检查静态值,而是比较值.
为了使用字典解决方案,是否有可能为所有数字更大的零定义变量以进行测试?也许与lambda?我尝试了一些东西,但没有得到任何结果.
目前我所拥有的解决方案可能正常工作但未来可能会为小于-1.0,-2.0或更大1.0或2.0等的值添加其他颜色,此时代码将变得越来越长我觉得可以更优雅地解决.
我想我在这里检查所有相关的帖子,所以我希望这不是重复的.
这是我做的唯一改变:
def set_colour(x, trigger=False):
if trigger:
return 'blue'
elif x > 0.0:
return 'green'
elif x < 0.0:
return 'red'
else:
return 'black'
Run Code Online (Sandbox Code Playgroud)