我有一个从调用中返回的json对象,类似于:
{
'Tags': [
{
'Key': 'Dept',
'PropagateAtLaunch': True,
'ResourceId': 'my-auto-scaling-group',
'ResourceType': 'auto-scaling-group',
'Value': 'Research',
},
{
'Key': 'Role',
'PropagateAtLaunch': True,
'ResourceId': 'my-auto-scaling-group',
'ResourceType': 'auto-scaling-group',
'Value': 'WebServer',
},
{
'Key': 'ecs_scaling',
'PropagateAtLaunch': True,
'ResourceId': 'my-auto-scaling-group',
'ResourceType': 'auto-scaling-group',
'Value': 'true',
},
],
'ResponseMetadata': {
'...': '...',
},
}
除了标准的方法之外,还有没有一种更简单的方法来确定键ecs_scaling
是否存在:
键可以是第一个项目,也可以是第40个项目——理想情况下,我希望能够执行类似^{
复杂度已经是线性的,所以您希望的唯一更快的事情就是哈希搜索。 然而,构造哈希集或哈希表需要线性复杂度。在
因此,除非您从
json
模块调用的函数已经构建了这样一个散列集,否则对于线性复杂度而言,迭代是最好的选择,即O(n)
。在在这方面,我认为最具python风格的方法是使用
any
内置的,另一个已经提到过了。在出于完整性的考虑,尽管它的性能会降低,但您也可以使用列表理解,这通常被认为是“高度python”:
这不是很好,因为必须构建一个额外的列表,这需要对整个数据进行迭代。在
您可以使用内置的^{} 。在
相关问题 更多 >
编程相关推荐