我不太清楚这个问题怎么说。所以就这样吧。我有这段代码看起来很糟糕。 recommendation
只取5个case。
if avg_recommendation=='BUY':
recommendation=5
if avg_recommendation=='OVERWEIGHT':
recommendation=4
if avg_recommendation=='HOLD':
recommendation=3
if avg_recommendation=='UNDERWEIGHT':
recommendation=2
if avg_recommendation=='SELL':
recommendation=1
我想让它成为 pythonic。我该怎么做?我读过枚举,看起来它可能是我的解决方案。但我对任何看起来优雅的解决方案持开放态度。我还在用python2.7 谢谢。
最佳答案
使用键、值的字典。其中 key 是传入状态,value 是传出状态。 这是一种高度 Pythonic 模式,您可能会一次又一次地重复使用它。在许多情况下,您会希望在输入状态上进行分派(dispatch),您应该将函数作为值放入字典中。
recs = {
'SELL': 1,
'UNDERWEIGHT': 2,
'HOLD': 3,
'OVERWEIGHT': 4,
'BUY': 5,
}
# this will fail correctly with a KeyError for non-expected states.
recommendation = recs[avg_recommendation]
关于python:如何将if语句转换为枚举或使其成为pythonic,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25577929/