上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 23 下一页
  2019年12月30日
摘要: Hash索引 (1) 它会使用到hash函数,算出一个确切的值 , 如果key发生变化. hash值也会跟着发生变化. 而且还存在着hash冲突的情况. (2) 联合索引的情况 hash(id+name) = hash值 , 不能支持 部分索引查询和范围查找. 红黑树 (1) 树太高,读取磁盘的次数 阅读全文
posted @ 2019-12-30 23:29 显示账号 阅读(913) 评论(0) 推荐(0) 编辑
  2019年12月29日
摘要: HashMap需要注意以下几方面 (1) HasMap底层是用Node数组table存储数据, 它是采用懒加载的方式初始化的, 初始长度16, 加载因为0.75, 每次扩容2倍, 在扩容时,移动节点都是采用尾插法. 而JDK8之前都是采用的头插法(这里有个典型的问题,多线程可能死循环). (2) J 阅读全文
posted @ 2019-12-29 17:36 显示账号 阅读(314) 评论(0) 推荐(0) 编辑
  2019年12月28日
摘要: 常见算法与数据结构暴力:二分: 前提,有序 , 时间复杂度O(lgn) > 转换成数据结构: 二叉树(二叉查找树,二叉搜索, 二叉有序树)哈希: 最高效 , O(1), hash冲突 , jdk1.8 hashmap中的数据结构: 链表+红黑树(处理hash冲突的)插值索引: 搜索引擎 ,Lucen 阅读全文
posted @ 2019-12-28 23:53 显示账号 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 进程和线程都是由操作系统控制调度的, 协程是是函数级别的调度,可以由程序员写代码控制 python中使用async和await两个关键字来支持原生协程 # python后期使用async和await两个关键字来定义协议, 这样就可以与生成器表示区别开来, 语义也更加明确 # 底层也是使用生成器来实现 阅读全文
posted @ 2019-12-28 20:58 显示账号 阅读(134) 评论(0) 推荐(0) 编辑
  2019年12月27日
摘要: def gen(): """子生成器""" yield 1 def gen1(gen): """委托生成器""" yield from gen def main(): """调用方""" g = gen() g1 = gen1(g) g1.send(None) # 启动生成器 上面的代码有3个角色, 阅读全文
posted @ 2019-12-27 22:42 显示账号 阅读(202) 评论(0) 推荐(0) 编辑
摘要: yield from 是python3.3中新增的语法, 语法结构: yield from iterable 在上一篇文章中自定义了一个my_chain函数,现在可以yield from方法对其进行精简 # 自定义一个chain def my_chain(*args, **kwargs): """注 阅读全文
posted @ 2019-12-27 21:52 显示账号 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 使用itertools工具类中的chain方法,可以很方便的将多个iterable对象一起遍历. 不过,对于dict类型的iterable对象,只会遍历key. from itertools import chain my_list = [1, 2, 3] my_dict = { 'name': ' 阅读全文
posted @ 2019-12-27 21:41 显示账号 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 使用python内置的sorted方法,可以很方便的对dict元素排序 if __name__ == '__main__': my_dict = {} my_dict['CD'] = 12 my_dict['XA'] = 60 my_dict['BJ'] = 15 my_dict['GZ'] = 1 阅读全文
posted @ 2019-12-27 21:38 显示账号 阅读(2985) 评论(0) 推荐(0) 编辑
摘要: 使用sort方法,可以将list中的元素按自定义属性进行排序 class Person(object): def __init__(self, name, age): self.name = name self.age = age def __str__(self): return 'name:{} 阅读全文
posted @ 2019-12-27 21:26 显示账号 阅读(168) 评论(0) 推荐(0) 编辑
  2019年12月24日
摘要: 生成器除了前面提到的send方法传参之外,还有两个比较重要的方法 close() : 关闭生成器. 关闭生成器之后,如果后面还想从生成器中值 ,会报错 throw() : 传个异常到生成器内部 def gen_func(): yield 1 yield 2 yield 3 if __name__ = 阅读全文
posted @ 2019-12-24 23:39 显示账号 阅读(148) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 23 下一页