在Python中,使用列表比使用字典比使用元组有性能优势吗?
如果我是在优化速度,有没有理由更喜欢一个呢?
发布于 2008-11-21 14:47:13
富豪,
列表和字典是适合不同需求的野兽。确保你不使用列表进行线性搜索,因为字典散列是完美的,因为它要慢得多。另外,如果你只需要一个元素列表来遍历,不要使用字典,因为它会比列表占用更多的空间。
这听起来可能很明显,但通过算法选择正确的数据结构比微优化具有更高的性能增益,这是由于更有效的编译代码布局等。如果您在O(n)中的列表中搜索,而不是在O(1)中的字典中搜索,微优化不会拯救您。
发布于 2008-11-21 14:31:29
对于少量的元素,元组的构造速度会稍快一些。虽然实际上大部分收益将在使用的内存中,而不是CPU周期中,因为元组比列表需要更少的空间。
话虽如此,性能差异应该可以忽略不计,一般来说,您不应该担心这些类型的微优化,直到您分析了代码并确定了一段瓶颈代码。
发布于 2008-11-21 14:40:36
最大的区别是元组是不可变的,而列表和字典是可变的数据结构。这意味着元组也更快,所以如果你有一个不变的项目集合,你应该更喜欢它们而不是列表。
https://stackoverflow.com/questions/308912
复制相似问题