python 之 字符串处理
摘要:分割字符串 根据某个分割符分割 根据多个分隔符分割 如果你在结果列表中保留这些分隔符,可以捕获分组: 如果不保留这些分隔符,但想用分组正则表达式,可以使用非捕获分组: 匹配字符串开始或结束 检查字符串是否以 某字符开始或结束 可用 startswith() 和 endswith(): 如果你的检查有
阅读全文
python collections模块 之 ChainMap
摘要:ChainMap提供了一种多个字典整合的方式,它没有去合并这些字典,而是将这些字典放在一个 maps (一个列表)里,内部实现了很多 dict 的方法,大部分 dict 的方法,ChainMap 都能使用。 ChainMap在获取一个key的值时,会遍历 maps ,一旦在其中一个 字典里找到了这个
阅读全文
python 筛选序列中的元素
摘要:列表生成式 如果数据量很大,会产生一个庞大的结果。这时可以用生成器表达式: 如果筛选的过程中涉及一些复杂的细节,可以使用内建的 filter() 函数: 根据一个布尔值序列筛选另一个序列: 现在构建一个地址列表,count 值要大于3:
阅读全文
python 将值相同的key分组的方法
摘要:方法一: 使用 itertools.groupby() 在这里重要的是要先根据感兴趣的字段对数据进行排序。因为 groupby 只能检查连续的项,不首先排序的话,将无法按所想的方式来记录分组。 方法二:
阅读全文
python collections模块 之 orderdict
摘要:普通字典善于隐射,其次追踪插入顺序。而 orderdict 更善于后者。因为 orderdict 内部维护了一个双向链表,大小会是普通字典的两倍。 增加方法: popitem(last=True) 移除并返回一个键值对,last=True 时,后进先出,反之,先进先出。 move_to_end(ke
阅读全文
python 描述器
摘要:语法简析 一般来说,描述器(descriptor)是一个有”绑定行为”的对象属性(object attribute),它的属性访问被描述器协议方法重写。这些方法是 __get__()、 __set__() 和 __delete__() 。如果一个对象定义了以上任意一个方法,它就是一个描述器。而描述器
阅读全文
python 之 heapq (堆)
摘要:堆的实现通过构造二叉堆,实为二叉树的一种;这种数据结构具有以下性质: 任意节点小于(或大于)它的后裔,最小元(或最大元)在堆的根上 堆总是一颗完整树。即除了最低层,其它层的节点都被元素填满,且最低层极可能的从左向右填充。 复杂度: 应用: 找出最小或最大的n个元素 nlargest 和 nsmall
阅读全文
python collections 模块 之 deque
摘要:class collections.deque(iterable[,maxlen]): 返回 由可迭代对象初始化的 从左向右的 deque 对象。 maxlen: deque 的最大长度,一旦长度超出,会在 相反方向 删除等量的 items。 append(x): 从 deque 的右边添加 app
阅读全文
python 中的 is 方法 总结
摘要:isidentifier: 判断变量名是否合法 iskeyword:是否为内置关键字
阅读全文
python 中动态类的创建
摘要:参考 collections.namedtuple 的实现 链接: https://www.cnblogs.com/BeautifulWorld/p/11647198.html
阅读全文
python intern(字符串驻留机制)
摘要:python 中为了提高字符串的使用用效率和节约内存,对于由 字母、数字、下划线组成的标识符采用了 intern 机制,即对于短字符串,将其赋值给多个对象时,内存中只有一个副本,多个对象共享这个副本。长字符串不适用。 注:驻留机制发生在编译阶段,不是运行阶段。 例: 对没有默认使用 intern 机
阅读全文
python 为 class 添加新的属性和方法
摘要:通过继承: __slots__: 元组、列表、可迭代对象 当一个类需要创建大量实例时,通过_slots_可以声明实例所需要的属性。 slots主要用于优化内存和属性的访问速度,也可以用于限制子类中的属性,但这不是主要用途。 通过MethodType: 单独给某个实例动态添加方法: 给类动态绑定方法:
阅读全文
python collections 模块 之namedtuple
摘要:namedtuple collections.namedtuple(typename, filed_name, *, rename=False, module=None) 创建一个以 typename 命名的 tuple 子类,这个子类用于创建类元组对象,这些对象可以像元组一样被索引和迭代。 fie
阅读全文
python collections模块 之 defaultdict
摘要:defaultdict 是 dict 的子类,因此 defaultdict 也可被当成 dict 来使用,dict 支持的功能,defaultdict 基本都支持。但它与 dict 最大的区别在于,如果程序试图根据不存在的 key 采访问 dict 中对应的 value,则会引发 KeyError
阅读全文
StringIO和BytesIO
摘要:StringIO:在内存中读写str BytesIO:在内存中读写bytes
阅读全文
python Six 模块
摘要:Six模块用于python2和python3的兼容 官网链接:https://six.readthedocs.io/
阅读全文
assert(断言)
摘要:Python assert(断言)用于判断一个表达式,在表达式条件为 false 的时候触发异常。 语法格式: 等价于: 例子:
阅读全文