Python 效率 : lists vs. 元组

标签 python python-2.7 optimization python-2.6

我有中等数量的基础对象。

这些基础对象将被放入集合中,这些集合将被处理:排序、截断等。

不幸的是,n 足够大,内存消耗有点令人担忧,速度也越来越令人担忧。

我的理解是元组的内存效率稍微高一些,因为它们是重复数据删除的。

无论如何,我想知道 Python 2.6/2.7 中列表与元组的 cpu/内存权衡是什么。

最佳答案

如果您有一个元组和一个包含相同元素的列表,则元组占用的空间更少。由于元组是不可变的,因此您无法对它们进行排序、添加,等等。我建议观看 this talk by Alex Gaynor快速介绍何时选择 Python 中的数据结构。

更新:再考虑一下,您可能需要研究优化对象的空间使用,例如,通过 __slots__或使用 namedtuple实例作为代理而不是实际对象。这可能会带来更大的节省,因为您有 N 个,并且(大概)只有几个它们出现的集合。 namedtuple 特别棒;查看Raymond Hettinger's talk .

关于Python 效率 : lists vs. 元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6063494/

相关文章:

python - 如何从 PyQt 中的 QListWidget 更新与 QListWidgetItem 关联的数据?

python - 根据另一个 csv 中的另一个值在 csv 列中写入一个值

python - 如果它不以 http 开头,我如何将 http 添加到 url?

java - 我们可以将整数存储在少于 4 个字节中吗?

c - 为什么编译器不删除无用的循环?

python - 谷歌合作实验室: How can i mount two google drive accounts?

python - 将python随机森林模型保存到文件

python - 比较数组值的更简洁的方法?

c++ - "variable tracking"占用了我的编译时间!

python - 使用 curve_fit 拟合数据时协方差矩阵的方差太大