python dict中的可选参数

时间:2017-11-15 14:04:42

标签: python dictionary

有没有办法在Python字典中包含可选参数?

例如,我有以下get语句用于获取请求。它们取决于输入并且大部分相同。

如果区域作为输入参数传递,我们有:

if region:
    return {
        'success': True,
        'result': {
            'country': country,
            'region': region, #  optional region param
            'cities': cities
        }
    }

如果城市通过:

if city:
    return {
        'success': True,
        'result': {
            'country': country,
            'city': city, #  optional city param
            'cities': cities
        }
    }

如果没有通过城市或地区:

return {
    'success': True,
    'result': {
        'country': country,
        'cities': cities
    }
}

我想要的是有一个return语句:

return {
    'success': True,
    'result': {
        'country': country,
        if region: 'region': region, #  I know this and the next lines don't work
        if city: 'city': city,
        'cities': cities
    }
}

2 个答案:

答案 0 :(得分:2)

dict文字不允许使用控制语句,但执行此操作非常简单:

r = {
    'country': country,
    'cities': cities
}

if region: 
    r['region'] = region
if city: 
    r['city'] = city

return {
    'success': True,
    'result': r
}

答案 1 :(得分:-1)

选项1

如其他答案中所述,在本地创建一个字典,并在此过程中添加可选参数。

选项2

使用函数返回的字典时,请使用

retdict.get('city', 'defaultvalue')代替retdict['city'],以确保您在尝试获取不存在的参数时失败。

选项3

使用defaultdictPython Docshere

中列出了一些易于理解的示例