在Python中使用字典而不是元组是否有任何性能优势?
如果我正在优化速度,是否有理由偏爱另一个?
答案 0 :(得分:19)
富,
列表和词汇是适合不同需求的野兽。确保你不使用列表进行线性搜索,其中dicts哈希是完美的,因为它的速度较慢。此外,如果您只需要遍历的元素列表,请不要使用dicts,因为它将占用比列表更多的空间。
这可能听起来很明显,但是通过算法选择正确的数据结构可以获得更高的性能,因为更高效的编译代码布局等可以实现微优化。如果您在O(n)中的列表中搜索而不是在dict中搜索在O(1)中,微优化不会拯救你。
答案 1 :(得分:6)
为少数元素构造元组的速度会稍快一些。虽然实际上大多数增益都是在内存中使用而不是CPU周期,因为元组需要的空间比列表少。
话虽如此,性能差异应该可以忽略不计,一般情况下,在分析代码并确定一段代码瓶颈之前,您不必担心这些微优化问题。
答案 2 :(得分:2)
最大的区别是元组是不可变的,而列表和字典是可变数据结构。这意味着元组也更快,所以如果你有一组没有改变的项目,你应该优先于列表。
答案 3 :(得分:0)