2008-11-21 81 views

回答

19

Rich,

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

这听起来很明显,但在算法上选择正确的数据结构具有更高的性能增益,因为更高效的编译代码布局等等,可以实现微优化。如果在O(n)的列表中搜索而不是在在O(1)中的字典,微观优化不会为您节省。

+3

1比较。请注意,PHP程序员本质上并没有得到这种区别。 – 2008-11-21 14:52:55

6

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

就这么说,性能差异应该可以忽略不计,一般来说,您不应该担心这些类型的微优化,除非您对代码进行概要分析并确定了一部分代码是瓶颈。

2

最大的区别是元组是不可变的,而列表和字典是可变数据结构。这意味着元组也更快,所以如果你有一些不改变的项目集合,你应该比列表更喜欢它们。