【问题标题】:Python data structures overhead/performancePython数据结构开销/性能
【发布时间】:2008-11-21 14:22:56
【问题描述】:

在 Python 中使用列表而不是字典而不是元组有什么性能优势吗?

如果我正在优化速度,是否有任何理由偏爱一个而不是另一个?

【问题讨论】:

    标签: python optimization


    【解决方案1】:

    丰富,

    列表和字典是适合不同需求的野兽。确保不要将列表用于 dicts 散列完美的线性搜索,因为它的速度较慢。此外,如果您只需要遍历元素列表,请不要使用字典,因为它会比列表占用更多空间。

    这听起来很明显,但是由于更有效的编译代码布局等,从算法上选择正确的数据结构比微优化具有更高的性能增益。如果您在 O(n) 中而不是在 dict 中搜索列表在 O(1) 中,微优化不会拯救你。

    【讨论】:

    • +1 比较字典和列表之间的差异。请注意,PHP 程序员天生就没有这种区别。
    【解决方案2】:

    为少量元素构建元组会稍微快一些。虽然实际上大部分收益将在内存使用而不是 CPU 周期上,因为元组比列表需要更少的空间。

    话虽如此,性能差异应该可以忽略不计,一般来说,在您分析代码并确定有瓶颈的代码部分之前,您不必担心这些类型的微优化。

    【讨论】:

      【解决方案3】:

      最大的区别在于元组是不可变的,而列表和字典是可变的数据结构。这意味着元组也更快,因此如果您有一组不变的项目,您应该更喜欢它们而不是列表。

      【讨论】:

        【解决方案4】:
        猜你喜欢
        • 2013-02-24
        • 1970-01-01
        • 2021-09-09
        • 1970-01-01
        • 2011-02-24
        • 2016-12-19
        • 2023-04-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多