【问题标题】:How to speed up simple loop in python如何加快python中的简单循环
【发布时间】:2016-08-24 11:10:55
【问题描述】:

我想加快python中循环的速度。 下面有一段代码。

for x in dpath.util.search(self.data, "**", yielded=True):
        self.contentsList.append(x)

dpath.util.search 是生成器。 我怎样才能加快这个简单的循环??

【问题讨论】:

    标签: python optimization


    【解决方案1】:

    嗯,循环本身是不必要的;您可以让 Python 使用单个函数调用而不是多次调用来执行循环和附加工作:

    self.contentsList.extend(dpath.util.search(self.data, "**", yielded=True))
    

    【讨论】:

    • 我不知道dpath,但是如果yielded=True 是使它充当生成器的原因,那么当您是批量extending 时,有时不充当生成器会更快,因此,如果它返回 list,您可能会放弃该参数。
    • 首先,感谢您的回答。我测试了一下,可惜没有加速的增强,我想加快C代码速度。我认为 cython 是解决它的方法,但我不知道如何将 cython 应用于此代码。你能给我一些关于 cython 的想法吗?
    • 你看过numba吗?此外,ObjectPath 比 dpath 更成功,尽管我无法评论两者之间的相对速度
    • @FujiApple 感谢您的 cmets!我会尝试使用 numba!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-01
    • 2022-01-08
    • 2014-01-15
    • 2016-05-24
    • 2014-07-27
    • 1970-01-01
    • 2020-07-02
    相关资源
    最近更新 更多