有没有办法在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
}
}
答案 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)
如其他答案中所述,在本地创建一个字典,并在此过程中添加可选参数。
使用函数返回的字典时,请使用
retdict.get('city', 'defaultvalue')
代替retdict['city']
,以确保您在尝试获取不存在的参数时失败。
使用defaultdict
。 Python Docs和here