额外的数据会降低Python对象的性能吗?

2024-06-14 00:26:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我也许可以自己做实验来测量,但我希望有人能提供一个详细的答案

假设我有两个Python数组:

small_array = [{"x": i, "foo": "hamburger"} for i in range(0,10000)]
big_array = [{"x": i, "foo": "hamburger", "bar": "hotdog"} for i in range(0,10000)]

我的问题是:与big_array相比,small_array只涉及“x”参数的基本数组操作(如迭代或按索引访问)会更快吗

我这么问是因为我经常发现自己在构建一个复杂的数据结构X,在这个结构上我将执行昂贵的操作a和B,这样a和B使用的X的属性之间的重叠就很小了。所以我想知道把X分成Y和Z,这样A可以操作Y,B可以操作Z,是否有性能优势


Tags: 答案in数据结构for参数foobarrange
2条回答

在合理大小(1000个或更少的项目)的dict上的性能差异在统计学上是不显著的。可能有一些退化的情况,其中许多键散列到相同的值,但在Python的现代版本中发现的散列随机化将此隐藏起来

至于列表本身,每个元素只是对另一个对象的引用,因此基础对象的大小不会影响列表操作

迭代和索引对于每个列表都是相同的速度(对于将来的google,它们是列表,而不是数组)

相关问题 更多 >