码迷,mamicode.com
首页 > 编程语言 > 详细

Python的dict数据结构

时间:2015-07-08 22:09:10      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:

1.PyDictEntry数据结构

1 typedef struct {
2     /* Cached hash code of me_key.  Note that hash codes are C longs.
3      * We have to use Py_ssize_t instead because dict_popitem() abuses
4      * me_hash to hold a search finger.
5      */
6     Py_ssize_t me_hash;
7     PyObject *me_key;
8     PyObject *me_value;
9 } PyDictEntry;

2._dictobject数据结构

 1 typedef struct _dictobject PyDictObject;
 2 struct _dictobject {
 3     PyObject_HEAD
 4     Py_ssize_t ma_fill;  /* # Active + # Dummy */
 5     Py_ssize_t ma_used;  /* # Active */
 6 
 7     /* The table contains ma_mask + 1 slots, and thats a power of 2.
 8      * We store the mask instead of the size because the mask is more
 9      * frequently needed.
10      */
11     Py_ssize_t ma_mask;
12 
13     /* ma_table points to ma_smalltable for small tables, else to
14      * additional malloced memory.  ma_table is never NULL!  This rule
15      * saves repeated runtime null-tests in the workhorse getitem and
16      * setitem calls.
17      */
18     PyDictEntry *ma_table;
19     PyDictEntry *(*ma_lookup)(PyDictObject *mp, PyObject *key, long hash);
20     PyDictEntry ma_smalltable[PyDict_MINSIZE];
21 };

可以看出来dict使用的是hash数据结构!

Python的dict数据结构

标签:

原文地址:http://www.cnblogs.com/sxmcACM/p/4631245.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!