首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python数据结构开销/性能

Python数据结构开销/性能
EN

Stack Overflow用户
提问于 2008-11-21 14:22:56
回答 4查看 1.8K关注 0票数 3

在Python中,使用列表比使用字典比使用元组有性能优势吗?

如果我是在优化速度,有没有理由更喜欢一个呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2008-11-21 14:47:13

富豪,

列表和字典是适合不同需求的野兽。确保你不使用列表进行线性搜索,因为字典散列是完美的,因为它要慢得多。另外,如果你只需要一个元素列表来遍历,不要使用字典,因为它会比列表占用更多的空间。

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

票数 20
EN

Stack Overflow用户

发布于 2008-11-21 14:31:29

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

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

票数 6
EN

Stack Overflow用户

发布于 2008-11-21 14:40:36

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/308912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档