Python
文章平均质量分 58
openex
一位会烧菜梦想做神经学家的程序员
展开
-
python性能优化指南
本文用以记录在python开发中遇到的性能提高技巧 持续更新中…1.字符串在python中string对象是不可变的,而字符串的相加会产生新的字符串。 当需要迭代生成一个长字符串时逐一相加不仅会影响速度也会而外增加内存消耗(如中间结果,参考java StringBuffer), 但是当仅需链接很少的字符串时join方法未必明智join的恰当使用“”%()format原创 2017-02-28 17:06:30 · 404 阅读 · 0 评论 -
python进阶-数据结构和算法
本文内容整理自《Python Cookbook》,仅用作本人学习笔记,若侵犯原著权益请尽快联系本人。1.将序列分解为单独变量理解多重赋值丢弃元素方法data = ('Kevin', 50, 100, (2017, 2, 28))name, shares, _, date = data# _ 变量理解为忽略该位置元素2.从任意长度的可迭代对象中分离元素理解*a原创 2017-03-02 15:46:54 · 386 阅读 · 0 评论 -
Python源码学习笔记 1 简述python对象
声明:本系列为本人阅读《python源码剖析》的读书笔记,如有侵权请及时告知本人openex@qq.com1.PyObject在python中一切都是对象,而所有的对象都有相同的部分,便是PyObject 通常情况下PyObject对象中存在两个成员:引用计数和对象类型[object.h]typedef struct _object { PyObject_HEAD} PyObject原创 2017-04-09 22:02:54 · 325 阅读 · 0 评论 -
Python源码学习笔记 2 整数对象
Python中的整数类型是不可变对象,为了提高python运行效率,内部实现了小整数对象池(数组实现),和普通整数缓冲池(单链表实现)。1.PyIntObject 该结构仅适用2.5版本,该版本下数字长度大于long型时,对象类型会转变为PyLongObject,后续版本整合为PyIntObject,本篇文章仅讨论2.5版本PyIntObject结构:[intobject.h]typedef原创 2017-04-11 00:13:30 · 510 阅读 · 0 评论 -
Python源码学习笔记 4 列表对象
1.PyListObject[listobject.h]typedef struct { PyObject_VAR_HEAD //其中的obsize记录实际使用内存的对象数量 PyObject **ob_item; //指向列表存储空间中第一个元素地址 int allocated; //一共分配的内存空间对象数量(含未使用),obsize} PyListObjec原创 2017-04-17 20:47:37 · 350 阅读 · 0 评论 -
Python源码学习笔记 3 字符串对象
1.PyStringObjecttypedef struct { PyObject_VAR_HEAD long ob_shash; //存储字符串hash值,初始为-1 int ob_sstate; //表明该字符串是否经过intend处理 char ob_sval[1];//实际存储字符串位置,默认为一个字符数组,但创建时会根据size大小扩展此空间} PyStr原创 2017-04-13 16:59:54 · 523 阅读 · 0 评论 -
Python源码学习笔记 5 字典对象
Python中对于字典的实现是根据key进行hash生成散列表,算法为“开放定址法”1.PyDictEntry字典中每一个kv对,实际上就是一个entry对象[dictobject.h]typedef struct { Py_ssize_t me_hash; /* cached hash code of me_key */ PyObject *me_ke原创 2017-04-23 23:27:23 · 438 阅读 · 0 评论