Python 提高函数的可读性和功能性

Python 提高函数的可读性和功能性,python,function,dictionary,maps,definition,Python,Function,Dictionary,Maps,Definition,我有以下定义: def heat( number ): if number == "r": h = 12 elif number == "b": h = 24 return h 然而,我想让它看起来更好,而不必回复if声明。我被告知我可以用以下方式来做(我想用这种方式做,所以如果我能在这个特定的例子上得到帮助,请): 然而,我不明白这将如何返回“h”的值,这正是我想要的。有人能给我解释一下这个方法吗?此外,我还弄不清楚,地图和字典等。提前谢谢 更新 好的,我得到了上面的例子

我有以下定义:

def heat( number ):

if number == "r":
    h = 12
elif number == "b":
    h = 24

return h
然而,我想让它看起来更好,而不必回复if声明。我被告知我可以用以下方式来做(我想用这种方式做,所以如果我能在这个特定的例子上得到帮助,请):

然而,我不明白这将如何返回“h”的值,这正是我想要的。有人能给我解释一下这个方法吗?此外,我还弄不清楚,地图和字典等。提前谢谢

更新

好的,我得到了上面的例子,但是如果我有两个函数的输入呢

e、 g

我是否为报税表写信:

return m(heat, coeff) 

或者这不起作用吗?

您也可以使用一条语句(如果您只有有限的选项):

但是,如果您需要两个以上的备选方案,那么您建议的词典会更好

您还可以避免例外情况:

def heat(number):
    m = { "r" : 12,
          "b" : 24 }

    return m[number] if number in m else 0.0
地图和词典

一般来说,地图和字典是两个意思相同的词。在很多文献中,很多人都可以互换使用它们

地图之所以这样叫是因为它们就是这样做的。它们是相互映射的任意值对的集合。给定一对中的一个值(称为键),可以相对有效地获得另一个值(值)。除了易于使用之外,地图通常也用于此目的。(在您的示例中,“r”和“b”都是键,12和24是它们各自的值。)

严格来说,在Python中实现这一点的标准数据结构称为
dict
(dictionary的缩写),它们在文档中用于描述概念的单词是mapping object


为了理解如何返回“h”的值,您应该这样做,因为这就是
m
的含义。

可以更简洁地编写字典变体:

def heat(number):
    return {'r':12,'b':24}.get(number,0.0)

好的,谢谢,我显然必须保留异常,如果可能的话,我会尽量避免任何if语句。我仍然不明白如果函数中没有使用“h”,它如何返回“h”的值?为什么要避免任何if语句?(try/except机制在内部也可以看作是if语句)。恐怕我不明白你最后的话。在你的第二个例子中,我的第二部分答案是基于h,你也没有使用h,这是我被赋予的任务。很抱歉,我可能听起来有点困惑,但我已经弄明白了我的问题所在。我对Python还是相当陌生的。谢谢你的帮助谢谢你的回答,它帮助我更好地理解事情
def heat(number):
    return 12 if number == "r" else (24 if number == "b" else 0.0)
def heat(number):
    m = { "r" : 12,
          "b" : 24 }

    return m[number] if number in m else 0.0
def heat(number):
    return {'r':12,'b':24}.get(number,0.0)