如何将多行“if elif”放在一行Python中

2024-10-01 04:51:05 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的代码,我想把这一切放在一行:

def GetKey(self, key):

    if key == "externalCode":
        return "ExternalCode"
    elif key == "name":
        return "Name"
    elif key == "description":
        return "Description"
    elif key == "remind-indays":
        return "RemindInDays"
    elif key == "is-delegate-supported":
        return "IsDelegateSupported"
    elif key == "escalation":
        return "Escalation"

Tags: key代码nameselfreturnifdefdescription
3条回答

使用字典

key_map = {"externalCode": "ExternalCode", "name": "Name", "description": "Description", "remind-indays": "RemindInDays", "is-delegate-supported": "IsDelegateSupported", "escalation": "Escalation"}

def GetKey(self, key):
    return key_map[key];

如果提供的密钥无效,则会引发错误。如果确实希望返回None(与函数一样),请使用dict.get()方法

def getKey(self, key):
    return key_map.get(key)
you can use a dict instead of your function:

GET_KEY = {
    "externalCode": "ExternalCode",
    "name": "Name",
    "description": "Description",
    "remind-indays": "RemindInDays",
    "is-delegate-supported": "IsDelegateSupported",
    "escalation": "Escalation"}

GET_KEY.get("externalCode")

输出:

'ExternalCode'
def stackflow(x):
    key = {
        "externalCode": "ExternalCode",
        "name": "Name",
        "description": "Description",
        "remind-indays": "RemindInDays",
        "is-delegate-supported": "IsDelegateSupported",
        "escalation": "Escalation"
    }
    return key[x]

相关问题 更多 >