Python 多个dict的使用与类实例的单个dict的使用

Python 多个dict的使用与类实例的单个dict的使用,python,python-2.7,dictionary,Python,Python 2.7,Dictionary,我正在看一些以以下方式加载数据的代码: idToFoo, idToBar, idToBaz = loadFlibbets() 每个都是id和相应数据值之间的dict 然后以类似于以下方式使用: for id in idToFoo: foo = idToFoo[id] bar = idToBar[id] baz = idToBaz[id] # process flibbet 我的OO思维模式告诉我,如果我定义一个将foo、bar和baz属性作为字段的类,然后将其

我正在看一些以以下方式加载数据的代码:

idToFoo, idToBar, idToBaz = loadFlibbets()
每个都是id和相应数据值之间的dict

然后以类似于以下方式使用:

for id in idToFoo:
    foo = idToFoo[id]
    bar = idToBar[id]
    baz = idToBaz[id]
    # process flibbet
我的OO思维模式告诉我,如果我定义一个将foo、bar和baz属性作为字段的类,然后将其更改为类似以下内容的类,那么这段代码将更容易理解:

flibbets = loadFlibbets()

for flibbet in flibbets:
    # process flibbet using flibbet.foo, flibbet.bar and flibbet.baz

哪一种方法更像蟒蛇?我对Python比较陌生,我继承了一些我觉得很难理解的代码,但可能只是我需要换一种方式思考。有更多Python经验的人会评论吗?

听起来你应该把flibbet变成一个namedtuple@gnibbler你的建议是基于风格、表现还是两者兼而有之?你的直觉对表现一无所知。另一方面,您的探查器可以。更重要的是,它还可以告诉你一开始是否要担心性能,如果你听了它,可能会节省你很多时间;那么,您是否有任何数据表明1您的这段代码存在性能问题,2您的这段代码存在性能问题?@delnan,我完全同意您的看法,我不知道。实际上,我使用的是IronPython,与实际的Python指令相比,探查器更多地展示了.NET DLR的精髓。有很多字典查找,但这可能只是DLR实现。我将对问题进行编辑,以减少对性能方面的强调。我最想知道的是,我所看到的由其他人编写的代码是否是Python中的常见做法。这可能是因为我试图将我的OO思想局限于不适合的地方。@delnan,是的,我可能在其他地方遇到了性能问题,因为这个过程大约需要10分钟才能完成:然而,我认为使代码更清晰将允许通过简化算法获得真正的性能收益。