我想将'status'
附加到由'update_fields'
索引的dict值,或者将['status']
作为值添加到由'update_fields'
索引的kwargs,如果该密钥不存在的话。
kwargs.setdefault('update_fields', kwargs.get('update_fields', []).append('status'))
这是或者大约3行代码,当然python可以做得比这更好!
答案 0 :(得分:6)
get
和setdefault
基本上是两种做同样事情的方法;把它们放在一起就是重复自己。 get
和setdefault
之间的唯一区别是,如果默认值不存在,则setdefault
设置值。在那之后,它们在语义上是相同的。
所以这一部分:
kwargs.get('update_fields', [])
..是多余的。如果字典没有该键的值,setdefault
设置默认值(并返回它,如get
),否则它只查找与该键关联的值。
所以你需要的只是:
kwargs.setdefault('update_fields', []).append('status')
答案 1 :(得分:5)
你不需要kwargs.get()
位,setdefault
只设置值,如果它还没有,你可以写:
kwargs.setdefault('update_fields', []).append('status')