我也许可以自己做实验来测量,但我希望有人能提供一个详细的答案
假设我有两个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,是否有性能优势
在合理大小(1000个或更少的项目)的dict上的性能差异在统计学上是不显著的。可能有一些退化的情况,其中许多键散列到相同的值,但在Python的现代版本中发现的散列随机化将此隐藏起来
至于列表本身,每个元素只是对另一个对象的引用,因此基础对象的大小不会影响列表操作
迭代和索引对于每个列表都是相同的速度(对于将来的google,它们是列表,而不是数组)
相关问题 更多 >
编程相关推荐