Python中的if语句太长且难看,有什么方法可以简化吗
我在Python里有一个又长又复杂的else 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 个回答
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
使用字典:
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
通过在字典的末尾直接添加 [selected]
,可以让字典的表现像是一个控制流语句。使用这种方式,它总是会根据情况进行评估。
6
有一个字典,里面存着在给定p的情况下y的值。
p={"A":10,.....}
y=dict[p]