有没有更优雅的方法来用Python编写这个?

2024-03-28 11:57:38 发布

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

我想将'status'附加到由'update_fields'索引的dict值,或者将['status']作为值添加到由'update_fields'索引的kwargs(如果该键不存在)。你知道吗

kwargs.setdefault('update_fields', kwargs.get('update_fields', []).append('status'))

要么是这段代码,要么是大约3行代码,肯定python可以做得更好!你知道吗


Tags: 代码fieldsgetstatusupdatedictkwargsappend
2条回答

getsetdefault本质上是做同一件事的两种方法;把它们放在一起就是重复你自己。getsetdefault之间唯一的区别是setdefault在默认值不存在时设置值。之后,它们在语义上是相同的。你知道吗

所以这部分:

kwargs.get('update_fields', [])

…是多余的。setdefault设置默认值(并返回它,如get),如果字典还没有该键的值,否则它只会查找与该键关联的值。你知道吗

所以你只需要:

kwargs.setdefault('update_fields', []).append('status')

您不需要kwargs.get()位,setdefault只设置值,如果它还不存在,您可以编写:

kwargs.setdefault('update_fields', []).append('status')

相关问题 更多 >