gpt4 book ai didi

python - 与 munch.munch 对象列表匹配的惯用方法?

转载 作者:行者123 更新时间:2023-12-01 01:21:14 25 4
gpt4 key购买 nike

我正在使用 openstack 着色库来管理我们的 openstack 堆栈。一项任务是列出用户拥有的所有堆栈(例如,然后允许删除它们)。

着色库调用 list_stacks() 返回 munch.Munch 的列表对象,基本上我想识别具有与某些用户提供的输入匹配的“id”或“name”的堆栈对象。

我在这里想出了这段代码:

def __find_stack(self, connection, stack_info):
stacks = connection.list_stacks()
for stack in stacks:
if stack_info in stack.values():
return stack
return None

但感觉很笨拙,我想知道是否有更惯用的方法可以在 python 中解决这个问题? (stack_info 是一个简单的字符串,可以是“name”或“id”,换句话说:它可能与咀嚼堆栈对象的“dict”值中的这个或那个条目匹配)

最佳答案

正如我的评论所暗示的,我并不认为有什么需要改进的地方。

但是,从性能角度来看,您可以使用 filter 将循环下推到 C 级别,如果存在大量堆栈,这可能会很有好处。

就可读性而言,我认为您不会获得太多 yield 。

def __find_stack(self, connection, stack_info):
stacks = connection.list_stacks()
return list(filter(lambda stack: stack_info in stack.values(), stacks))

但是这种方法并不是“短路”的。您的原始代码在找到匹配项时会停止,而此代码不会,因此理论上您将获得多个匹配项(如果存在)(或者在没有匹配项时获得空列表)。

关于python - 与 munch.munch 对象列表匹配的惯用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53814720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com