摘要: 一、用于过滤的生成器函数 - 从输入的可迭代对象中产出元素的子集,而不修改元素本身 二、用于映射的生成器函数 - 在输入的可迭代对象中的各个元素上做计算,然后返回结果。 三、用于合并的生成器函数 - 从输入的多个可迭代对象中产出元素 四、用于扩展输入的可迭代对象的生成器 五、用于重新排列元素的生成器 阅读全文
posted @ 2019-04-10 21:44 StackNeverOverFlow 阅读(272) 评论(0) 推荐(0) 编辑
摘要: Vector第1版(不可切片版): Vector第2版(不完美切片版): 切片原理 - 切片背后与slice对象和indices对象有关 - 实际调用的是slice(start, stop, stride).indices(len) - 给定长度为len的序列,计算起始和结尾的索引,以及步幅。超出边 阅读全文
posted @ 2019-03-24 15:52 StackNeverOverFlow 阅读(220) 评论(0) 推荐(0) 编辑
摘要: array和bytes的转换 - 每个array必须有一个type_code,以此为依据解析底层字节序列 - array有一个frombytes方法,可以把字节序列按type_code转换成Array - bytes构造函数接受一个可迭代对象作为参数,它依次遍历可迭代对象,将每个元素按其本身的数据类 阅读全文
posted @ 2019-03-18 20:45 StackNeverOverFlow 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 变量不是盒子,它是对象的标识 - 标识、相等性和别名 复制 - 复制列表或多数内置可变集合,最简单的方式是使用内置的类型构造方法 - 默认是浅复制 - 深复制需要用到copy.deepcopy WeakValueDictionary ['Alen', 'Bob', 'Wendy']['Wendy'] 阅读全文
posted @ 2019-03-16 15:29 StackNeverOverFlow 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 装饰器基础知识 - 装饰器是可调用对象,其参数是另一个函数 - 装饰器会处理被装饰的函数,然后把它返回,或者将其替换成另一个函数或可调用对象 inner is called<function deco.<locals>.inner at 0x00000155417B9F28> Python何时执行装 阅读全文
posted @ 2019-03-05 21:44 StackNeverOverFlow 阅读(414) 评论(0) 推荐(0) 编辑
摘要: 一等函数满足: - 在运行时创建 - 能赋值给变量或数据结构中的元素 - 能作为参数传给函数 - 能作为函数的返回结果 把函数视作对象,并通过参数传递: factorial: <class 'function'>[1, 1, 2, 6, 24, 120, 720, 5040, 40320, 3628 阅读全文
posted @ 2019-02-20 21:45 StackNeverOverFlow 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 字典构造方法: 字典新增元素 origin dict: {'andy': 12, 'bob': 3, 'candy': 6} __setitem__ after inserted: {'andy': 12, 'bob': 3, 'candy': 6, 'fancl': 13} setdefault( 阅读全文
posted @ 2018-10-29 22:20 StackNeverOverFlow 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 序列类型的划分: 第一种划分: - 容器序列:可以存放不同类型的数据,存放的是引用 - list、tuple、collections.deque - 扁平序列:只能存放一种类型的数据,存放的是值 - str、bytes、bytearray、memoryview、array.array 第二种划分: 阅读全文
posted @ 2018-10-19 21:42 StackNeverOverFlow 阅读(400) 评论(0) 推荐(0) 编辑
摘要: 这题用到了卡特兰数,比较麻烦。关于卡特兰数的基本概念百度一下你就知道。 使用卡特兰数对数组元素进行分组之后,需要具体计算一下要求的是第几组的第几个数,然后向下递归。 首先来看利用卡特兰数分组: 从1开始前4个卡特兰数是 C[1]=1, C[2]=2, C[3]=5, C[4]=14 (C[0]也是有 阅读全文
posted @ 2018-10-15 14:53 StackNeverOverFlow 阅读(197) 评论(0) 推荐(0) 编辑
摘要: Python解释器碰到特殊句法时,会使用魔术方法去激活一些基本的对象操作,这些特殊方法的名字以两个下划线开头,以两个下划线结尾 - 举例:obj[key]背后就是__getitem__方法 - 没有实现__getitem__方法,无法使用[]获取类中的dict - 实现__getitem__方法后, 阅读全文
posted @ 2018-10-11 22:32 StackNeverOverFlow 阅读(327) 评论(0) 推荐(0) 编辑