设置默认值的Python方式
有没有一种在python中设置默认值的简单方法——特别是在dict中设置默认值 例如,假设我有一个名为设置默认值的Python方式,python,default-value,Python,Default Value,有没有一种在python中设置默认值的简单方法——特别是在dict中设置默认值 例如,假设我有一个名为foo的dict,它可能在键栏上指定了什么,也可能没有。详细的方法是: if not foo.has_key('bar'): foo['bar'] = 123 一个备选方案是: foo['bar'] = foo.get('bar',123) 是否有一些标准的python方法可以做到这一点——类似于下面的方法,但实际上是可行的 foo['bar'] ||= 123 (错误答案的第一部分被
foo
的dict,它可能在键栏上指定了什么,也可能没有。详细的方法是:
if not foo.has_key('bar'):
foo['bar'] = 123
一个备选方案是:
foo['bar'] = foo.get('bar',123)
是否有一些标准的python方法可以做到这一点——类似于下面的方法,但实际上是可行的
foo['bar'] ||= 123
(错误答案的第一部分被删掉)
Dict
s有一个setdefault()
方法,它与get()
一样工作,只有在缺少键时才插入值
foo.setdefault('bar', 123)
干杯。你可以去看看没有人读过吗
+1因为这看起来很有意思。不幸的是,现在,我正在处理Django中的请求。session
,因此我无法将其重新定义为defaultdict
foo.get('bar')或123
与检查foo.has_key('bar')
。考虑<代码> Fo[[Bar ] ]=0 < /代码>。不要使用<代码> HasyKy()/代码>在Fo< <代码>中使用<代码>“Bar”来测试成员资格。@ J.F. Sebastian为什么?对我来说,seu-key似乎更明确了——在某些情况下,foo中的“bar”更合适吗?此外,当foo不一定是dict时?has_key()
被弃用(它从python3.0开始被删除)。原因可能是“应该有一种——最好只有一种——显而易见的方法来做到这一点。”@J.F.塞巴斯蒂安-很高兴知道-谢谢。
foo.setdefault('bar', 123)