blu*_*ank 2 python conditional dictionary key key-value
我有一个返回字典的函数:
def to_dict(self):
return dict({'identification': self.identifier,
'information': self.information,
'nodes': {e.position: e.to_dict for e in self.children}
})
Run Code Online (Sandbox Code Playgroud)
有没有办法可选择添加每个k/v?这不起作用,例如:
def to_dict(self):
return dict({'identification': self.identifier,
'information': self.information,
'nodes': {e.position: e.to_dict for e in self.children} if self.children
})
Run Code Online (Sandbox Code Playgroud)
有没有办法添加dict创建的可选部分,而无需为每个变体构建单独的字典; 是否有更好的方法来做到这一点?
在本地存储dict,在返回之前使用您的额外信息更新它:
def to_dict(self):
retval = {'identification': self.identifier,
'information': self.information,
}
if self.children:
retval['nodes'] = {e.position: e.to_dict for e in self.children}
return retval
Run Code Online (Sandbox Code Playgroud)
我删除了dict()我的示例中的构造函数,它完全是多余的.但是因为你的所有键都是有效的python标识符,你可以通过使用dict()构造函数和关键字参数以更紧凑的方式定义你的dict :
def to_dict(self):
retval = dict(identification=self.identifier,
information=self.information)
if self.children:
retval['nodes'] = {e.position: e.to_dict for e in self.children}
return retval
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
773 次 |
| 最近记录: |