我在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
答案 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]
,可以轻松获得一个字典,就像控制流语句一样。使用这种模式,它将始终评估案例。