Python 的 List 是如何实现的? [英] How is Python's List Implemented?

查看:31
本文介绍了Python 的 List 是如何实现的?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是链表还是数组?我四处寻找,只发现人们在猜测.我的 C 知识还不够好,无法查看源代码.

Is it a linked list, an array? I searched around and only found people guessing. My C knowledge isn't good enough to look at the source code.

推荐答案

这是一个动态数组.实际证明:无论索引如何,索引都需要(当然差异非常小(0.0013 µsecs!))相同的时间:

It's a dynamic array. Practical proof: Indexing takes (of course with extremely small differences (0.0013 µsecs!)) the same time regardless of index:

...>python -m timeit --setup="x = [None]*1000" "x[500]"
10000000 loops, best of 3: 0.0579 usec per loop

...>python -m timeit --setup="x = [None]*1000" "x[0]"
10000000 loops, best of 3: 0.0566 usec per loop

如果 IronPython 或 Jython 使用链表,我会感到震惊 - 它们会破坏许多基于列表是动态数组的假设而广泛使用的库的性能.

I would be astounded if IronPython or Jython used linked lists - they would ruin the performance of many many widely-used libraries built on the assumption that lists are dynamic arrays.

这篇关于Python 的 List 是如何实现的?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆