Dugreen Blog

会玩滑板的Geeker

python哈西表

最近帮一个国际学院的同学讲解哈希表与哈希函数的内容,发现当初学java的时候有关哈希表的内容学的太过浅薄,今天拿出晚上的时间来彻底加深学习一下哈西表与哈希函数。 我们在学习数据结构的内容时,会发现对线性表进行线性查找的时间复杂度是O(n),尽管使用二分查找这种改进的查找方式,所进行的操作的时间复杂度仍为O(log n),但是使用哈希表可以则可以进行非常快速的查找操作,查找时间复杂度为常...

MongoDB入门(五)

备份 语法 mongodump -h dbhost -d dbname -o dbdirectory -h:服务器地址,也可以指定端口号 -d:需要备份的数据库名称 -o:备份的数据存放位置,此目录中存放着备份出来的数据 # 例1 $ sudo mkdir test1bak $ sudo mongodump -h 192.168.196.128:27017 -d...

MongoDB入门(四)

超级管理员 为了更安全的访问mongodb,需要访问者提供用户名和密码,于是需要在mongodb中创建用户 采用了角色-用户-数据库的安全管理方式 常用系统角色如下: root:只在admin数据库中可用,超级账号,超级权限 Read:允许用户读取指定数据库 readWrite:允许用户读写指定数据库 创建超级管理用户 use admin db.cre...

MongoDB入门(三)

高级操作 讲解关于mongodb的高级操作,包括聚合、主从复制、分片、备份与恢复、MR、完成python与mongodb的交互 聚合 aggregate 聚合(aggregate)主要用于计算数据,类似sql中的sum()、avg() 语法 db.集合名称.aggregate([{管道:{表达式}}]) 管道 管道在Unix和Linux中一般用于将当前命令的输出结...

MongoDB入门(二)

数据查询 基本查询 1.方法find():查询 db.集合名称.find({条件文档}) 2.方法findOne():查询,只返回第一个 db.集合名称.findOne({条件文档}) 3.方法pretty():将结果格式化 db.集合名称.find({条件文档}).pretty() 加入比较运算符查询 等于,默认是等于判断,没有运算符 小于$lt...

MongoDB入门(一)

简介 MongoDB 是一个基于分布式 文件存储的NoSQL数据库 由C++语言编写,运行稳定,性能高 旨在为 WEB 应用提供可扩展的高性能数据存储解决方案 查看官方网站 MongoDB特点 模式自由 :可以把不同结构的文档存储在同一个数据库里 面向集合的存储:适合存储 JSON风格文件的形式 完整的索引支持:对任何属性可索引 复制和高可用性:支...

编程-2sum问题详解(python版)

2 sum的求和问题一般是这样子描述的:给你一组N个数字(数字可重复), 然后给你一个常数(比如 target = 5) ,我们的goal是在这一堆数里面找到2个数字,使得这2个数字的和等于target。 首先说明一下,本文所有的返回结果是存储在列表中的 具体细节可以分为以下情况 只返回一组匹配成功的组合 返回多组成功的组合(实现去重)比如数组arr = [0,1,1...

python容器(Collections)

Python附带一个模块,它包含许多容器数据类型,名字叫作collections。我们将讨论它的作用和用法。 我们将讨论的是: defaultdict counter deque namedtuple enum.Enum (包含在Python 3.4以上) defaultdict 我个人使用defaultdict较多,与dict类型不同,你不需要检查key是否...

python协程

Python中的协程和生成器很相似但又稍有不同。主要区别在于: 生成器是数据的生产者 协程则是数据的消费者 首先我们先来回顾下生成器的创建过程。我们可以这样去创建一个生成器: def fib(): a, b = 0, 1 while True: yield a a, b = b, a+b 然后我们经常在for循环中这样使用...

python对象变动

Python中可变(mutable)与不可变(immutable)的数据类型让新手很是头痛。简单的说,可变(mutable)意味着”可以被改动”,而不可变(immutable)的意思是“常量(constant)”。想把脑筋转动起来吗?考虑下这个例子: foo = ['hi'] print(foo) # Output: ['hi'] bar = foo bar += ['bye'] pri...