摘要: 最简单的用法 反向排序的: 更高级的用法: 阅读全文
posted @ 2018-06-04 16:53 弱冠 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 先给个例子: 魔法方法又称双下划线方法,或者dunder method 通过魔法方法,可以赋予类一些build-in的操作, 比如: 而且魔法方法比直接调用普通的方法更快 因为存在getitem方法,还可以: 所以也支持切片迭代等操作: 也支持in 操作符 阅读全文
posted @ 2018-06-04 13:08 弱冠 阅读(139) 评论(0) 推荐(0) 编辑
摘要: Python内建的filter()函数用于过滤序列 filter()函数返回的是一个Iterator filter()也接收一个函数和一个序列 根据返回值是True还是False决定保留还是丢弃该元素 上面的代码用filter()过滤出素数 阅读全文
posted @ 2018-06-03 16:30 弱冠 阅读(262) 评论(0) 推荐(0) 编辑
摘要: map(): map()函数接收两个参数,一个是函数,一个是Iterable 先用列表生成式生成列表, str为转换为字符串的函数, map函数则把列表的每个元素都应用str函数 reduce(): 这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算 阅读全文
posted @ 2018-06-03 01:03 弱冠 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 位置参数: 比如: 其中x和n分别占了一个位置,所以称为位置参数, 位置参数是必须传进来的! 默认参数: 比如: 必选参数在前,默认参数在后,当不传入默认参数时, 函数会默认为指定的值。传入默认参数时,会修改为 传入的值。定义默认参数要牢记一点:默认参数必须指向不变对象! 可变参数: 调用该函数时, 阅读全文
posted @ 2018-06-02 12:53 弱冠 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 如何理解yeild? yield 的作用就是把一个函数变成一个 generator,带有 yield 的函数不再是一个普通函数, Python 解释器会将其视为一个 generator 参考链接:https://www.ibm.com/developerworks/cn/opensource/os- 阅读全文
posted @ 2018-06-01 13:00 弱冠 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 怎样在两个字典中寻寻找相同点(比如相同的键、相同的值等等)? 先假定两个字典a,b: 可以简单的在两字典的 keys() 或者 items() 方法返回的结果上进行集合操作。 假如你想以现有字典构造一个排除几个指定键的新字典: 要注意的是:字典的 values() 方法也是类似,但是它并不支持这里介 阅读全文
posted @ 2018-06-01 12:32 弱冠 阅读(623) 评论(0) 推荐(0) 编辑
摘要: 字典排序? 你想创建一个字典,并且在迭代或序列化这个字典的时候能够控制元素的顺序 OrderedDict 内部维护着一个根据键插入顺序排序的双向链表。 每次当一个新的元素插入进来的时候, 它会被放到链表的尾部。对于一个已经存在的键的重复赋值不会改变键的顺序。 需要注意的是,一个 OrderedDic 阅读全文
posted @ 2018-06-01 11:07 弱冠 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 怎样实现一个键对应多个值的字典? defaultdict 的一个特征是它会自动初始化每个 key 刚开始对应的值 需要注意的是, defaultdict 会自动为将要访问的键(就算目前字典中并不存在这样的键)创建映射实体 阅读全文
posted @ 2018-06-01 10:58 弱冠 阅读(160) 评论(0) 推荐(0) 编辑
摘要: heapq 模块有两个函数: 例如: 这些方法是基于堆数据结构实现的,对于查找的元素个数较少的时候比较合适 如果仅仅想查找最大或者最小(N=1)的元素的话,用min()或者max()比较合适 如果 N 的大小和集合大小接近的时候,通常先排序这个集合然后再使用切片操作会更快点 参考至《Python C 阅读全文
posted @ 2018-06-01 10:30 弱冠 阅读(1202) 评论(0) 推荐(0) 编辑