Python中的字典是否提供了制定类似交换语句的最佳方法?

时间:2010-06-29 13:12:25

标签: python dictionary conditional switch-statement

我希望尝试以这种方式避免条件if / elif语句的长链没有性能或其他缺点:

errstr = {404: "404 Not Found",
          405: "405 Method Not Allowed"}
if code in errstr:
       print errstr[code];

1 个答案:

答案 0 :(得分:4)

是的,它们是最好的解决方案,因为它们被实现为哈希表,提供大致恒定的查找时间(如果哈希函数是好的)。二叉树将给出对数查找时间,if链线性时间。如果必须表示从不太大的有限集到其他集的映射,散列表通常是要走的路。

BTW,Python是一种非常好的学习语言,因为在Python中,最简单的解决方案通常也是最好的。