python if语句太长而且难看,有没有办法缩短它

时间:2014-08-26 13:17:00

标签: python if-statement

我在python中有这个冗长而丑陋的if语句,有没有办法将它压缩成一个较短的代码块,如果可能的话,可能会在一行或两行,因为它似乎有一种方法可以缩短一块像这样的代码

if p == "A": y = 10        
elif p == "B": y = 11
elif p == "C": y = 12
elif p == "D": y = 13
elif p == "E": y = 14
elif p == "F": y = 15

3 个答案:

答案 0 :(得分:5)

有一个包含y给定p

的值的字典
p={"A":10,.....}
y=dict[p]

答案 1 :(得分:2)

没有可能缩短这段代码。您可能已经注意到,python不提供任何switch-case语句。

根据您的使用情况,您可以将其更改为字典或按值重新计算:

values = { "A": 10, "B": 11, "C": 12, "D": 13, "E": 14, "F": 15 }
y = values[p]

y = ord(p) - ord("A") + 10

答案 2 :(得分:1)

使用dict:

choice = {
    "A": 10,        
    "B": 11,
    "C": 12,
    "D": 13,
    "E": 14,
    "F": 15
}[selected]

即。

selected = "A"
choice = {
    "A": 10,        
    "B": 11,
    "C": 12,
    "D": 13,
    "E": 14,
    "F": 15
}[selected]

print choice
>>> 10

通过在dict末尾立即添加[selected],可以轻松获得一个字典,就像控制流语句一样。使用这种模式,它将始终评估案例。