python list存储对象_python List 对象
生活随笔
收集整理的這篇文章主要介紹了
python list存储对象_python List 对象
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
從源碼中可以看到,PyListObject中存儲數據用的是PyObject **ob_item, 是當作Vector類似的方法。
Items must normally not be NULL,這句是說list中的元素從list中刪除,并不會立即free, 而是放到list的緩存池中。這個和整數,字符串對象不同。 List的緩存池初始化的時候是空的,在list的使用中,將被刪除的元素不斷的放到緩存池中。
因為list天生就是用來頻繁的操作插入或刪除的。那么如何管理內存呢? 這里使用allocated來進行管理每次申請內存的大小。類似緩存的概念,當現有的內存大小不夠使用的情況下, List直接新申請另一塊大內存。而這個新內存的大小就是allocated。
List的初始化是在PyList_New中進行的。
PyListObject對象創建出來后,就可以對其item進行增刪改操作了。這個和c++的vector類似。或者直接看書就可以了。
源碼修改:
按照書中先觀察allocated和ob_size的區別
可以明確的看到allocated的變化。和c++的vetor差不多
總結
以上是生活随笔為你收集整理的python list存储对象_python List 对象的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3皮卡丘眨眼代码_活见久,皮卡丘居然是一
- 下一篇: u盘启动后怎样修复电脑(电脑怎么修复u盘