python if statement too long and ugly, is there a way to shorten it
本问题已经有最佳答案,请猛点这里访问。
我有一个很长很难看的python中的if语句,有没有一种方法可以将它压缩成一个较短的代码块,如果可能的话,可以用一行或两行,因为似乎有一种方法可以缩短这样一段代码
1 2 3 4 5 6 | 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 |
有一个字典,其中包含给定p的y值
1 2 | p={"A":10,.....} y=dict[p] |
不可能缩短这段代码。正如您可能注意到的,python不提供任何switch case语句。
根据您的用法,您可以将其更改为词典或按值重新计算:
1 2 | values = {"A": 10,"B": 11,"C": 12,"D": 13,"E": 14,"F": 15 } y = values[p] |
或
1 | y = ord(p) - ord("A") + 10 |
使用DICT:
1 2 3 4 5 6 7 8 | choice = { "A": 10, "B": 11, "C": 12, "D": 13, "E": 14, "F": 15 }[selected] |
IE.
1 2 3 4 5 6 7 8 9 10 11 12 | selected ="A" choice = { "A": 10, "B": 11, "C": 12, "D": 13, "E": 14, "F": 15 }[selected] print choice >>> 10 |
通过在dict末尾立即添加