Python开发之基础Mongodb

Mongodb简介

Mongodb是一个分布式存储的NoSQL数据库,运行稳定、性能高,旨在于为WEB应用提供可扩展的高性能数据存储解决方案。

MongoDB特点:

  • 模式自由:可以把不同结构的文档存储在同一个数据库中。
  • 面向集合的存储:适合存储JSON风格格式的形式
  • 完整的索引支持:对任何属性可索引
  • 复制和高可用性:支持服务器之间的数据复制,支持主从模式以及服务器之间的相互复制。复制的主要目的是提供冗余及自动故障转移。
  • 自动分片:支持云级别的伸缩性,自动分片功能支持水平的数据库集群,可动态添加额外的机器。
  • 丰富的查询:支持丰富的查询表达方式,查询指令使用JSON形式的标记,可轻易的查询文档中的内嵌的对象以及数组
  • 快速就地更新:查询优化器会分析查询表达式,并生成一个高效的查询计划
  • 高效的传统存储方式:支持二进制数据以及大型数据。

Mongodb中的名词

SQL术语 MongoDB术语 说明
database database 数据库
table collection 数据库表/集合
row document 数据记录行/文档
column filed 数据字段/域
index index 索引
table joins   表连接,MongoDB不支持
primary key primary key 主键,MongoDB自动将id设置为主键

MongoDB中的三元素:数据库、集合、文档。

集合就是关系型数据库中的表

文档就是对应关系数据库中的行,文档就是一个对象,由键值对组成,是json的扩展Bson形式

数据库安装

1、下载完安装包,并解压 tgz

curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz    # 下载
tar -zxvf mongodb-linux-x86_64-3.0.6.tgz                                   # 解压

mv  mongodb-linux-x86_64-3.0.6/ /usr/local/mongodb

2、MongoDB 的可执行文件位于 bin 目录下,所以可以将其添加到 PATH 路径中:

export PATH=/usr/local/mongodb/bin:$PATH

3、MongoDB的数据存储在data目录的db目录下,但是这个目录在安装过程不会自动创建,所以你需要手动创建data目录,并在data目录中创建db目录。

mkdir -p /data/db

4、你可以在命令行中执行mongo安装目录中的bin目录执行mongod命令来启动mongdb服务。

./mongod
2018-08-15T22:03:29.771+0800 I STORAGE  [initandlisten] exception in initAndListen: 98 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
2018-08-15T22:03:29.771+0800 I CONTROL  [initandlisten] dbexit:  rc: 100

如果你在安装目录下执行./mongod报上述错误,表示没有权限,所以就要加权限

sudo chmod 777 -R /data

再次执行./mongod

5、MongoDB后台管理Shell

如果你需要进入MongoDB后台管理,你需要先打开mongodb装目录的下的bin目录,然后执行mongo命令文件。

MongoDB Shell是MongoDB自带的交互式Javascript shell,用来对MongoDB进行操作和管理的交互式环境。

[email protected]:/usr/local/mongodb/bin$ ./mongo
MongoDB shell version: 3.0.6
connecting to: test
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
    http://docs.mongodb.org/
Questions? Try the support group
    http://groups.google.com/group/mongodb-user
>
>
> 2+3
5

6、MongoDB web用户界面

MongoDB 提供了简单的 HTTP 用户界面。 如果你想启用该功能,需要在启动的时候指定参数 --rest 。

注意:该功能只适用于 MongoDB 3.2 及之前的早期版本。

$ ./mongod --dbpath=/data/db --rest

MongoDB 的 Web 界面访问端口比服务的端口多1000。

如果你的MongoDB运行端口使用默认的27017,你可以在端口号为28017访问web用户界面,即地址为:http://localhost:28017。

数据库基本操作

1、数据库切换

查看当前数据库名称
> db
test
查看所有数据库名称
> show dbs
local  0.078GB
切换数据库
> use test
switched to db tst

2、数据库删除

数据库删除
db.dropDatabase

3、数据集合

MongoDB 中使用 createCollection() 方法来创建集合。
db.createCollection(name, options)
参数说明:
name: 要创建的集合名称
options: 可选参数, 指定有关内存大小及索引的选项

options 可以是如下参数:

字段 类型 描述
capped 布尔 (可选)如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。
当该值为 true 时,必须指定 size 参数。
autoIndexId 布尔 (可选)如为 true,自动在 _id 字段创建索引。默认为 false。
size 数值 (可选)为固定集合指定一个最大值(以字节计)。
如果 capped 为 true,也需要指定该字段。
max 数值 (可选)指定固定集合中包含文档的最大数量。

在插入文档时,MongoDB 首先检查固定集合的 size 字段,然后检查 max 字段。

  • 不限制集合的大小
> db.createCollection("name")
{ "ok" : 1 }
  • 创建固定集合 mycol,整个集合空间大小 6142800 KB, 文档最大个数为 10000 个。
> db.createCollection("mycol",{capped:true,autoIndexId:true,size:8142800,max:10000})
{ "ok" : 1 }
  • 如果要查看已有集合,可以使用 show collections 命令:
> show collections
mycol
name
runoob
system.indexes
  • 删除集合:db.集合名称.drop()
> db.mycol.drop()
true

4、数据类型

常见数据类型

  • Object ID:文档类型
  • String:字符串,最常用必须是UTF-8
  • Boolean:存储一个布尔值,true或false
  • Integer:整数可以是32位或64位,取决于服务器
  • Double:存储浮点数
  • Arrays:数组或列表,多个值存储到一个键
  • Object:用于嵌入式的文档,即一个值为一个文档
  • Null:存储Null值
  • Timestamp:时间戳
  • Date:存储当前日期的UNIX时间格式

5、插入

MongoDB 使用 insert() 或 save() 方法向集合中插入文档,语法如下:

db.COLLECTION_NAME.insert(document)
> db.mycol.insert({title:‘Mongodb‘,descr:‘课程‘})
WriteResult({ "nInserted" : 1 })
> show dbs

6、查找

> db.mycol.find()
{ "_id" : ObjectId("5b7589f65591ee81f5f24102"), "title" : "Mongodb" }
{ "_id" : ObjectId("5b758a145591ee81f5f24103"), "title" : "Mongodb", "descr" : "课程" }

更新

update() 方法用于更新已存在的文档。语法格式如下:

db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)
参数说明:

query : update的查询条件,类似sql update查询内where后面的。
update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
writeConcern :可选,抛出异常的级别。
> db.mycol.find()
{ "_id" : ObjectId("5b7589f65591ee81f5f24102"), "title" : "Mongodb" }
{ "_id" : ObjectId("5b758a145591ee81f5f24103"), "title" : "Mongodb", "descr" : "课程" }
{ "_id" : ObjectId("5b758bc25591ee81f5f24104"), "name" : "hr", "age" : "18" }
> db.mycol.update({name:‘hr‘},{name:"gj"})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.mycol.find()
{ "_id" : ObjectId("5b7589f65591ee81f5f24102"), "title" : "Mongodb" }
{ "_id" : ObjectId("5b758a145591ee81f5f24103"), "title" : "Mongodb", "descr" : "课程" }
{ "_id" : ObjectId("5b758bc25591ee81f5f24104"), "name" : "gj" }

以上语句只会修改第一条发现的文档,如果你要修改多条相同的文档,则需要设置 multi 参数为 true

> db.mycol.update({},{$set:{title:‘python‘}},{multi:true})
WriteResult({ "nMatched" : 3, "nUpserted" : 0, "nModified" : 2 })
> db.mycol.find()
{ "_id" : ObjectId("5b7589f65591ee81f5f24102"), "title" : "python" }
{ "_id" : ObjectId("5b758a145591ee81f5f24103"), "title" : "python", "descr" : "课程" }
{ "_id" : ObjectId("5b758bc25591ee81f5f24104"), "name" : "gj", "title" : "python" }

7、保存

save() 方法通过传入的文档来替换已有文档。语法格式如下:

db.collection.save(
   <document>,
   {
     writeConcern: <document>
   }
)
参数说明:

document : 文档数据。
writeConcern :可选,抛出异常的级别。
> db.mycol.save({name:‘java‘})
WriteResult({ "nInserted" : 1 })
> db.mycol.find()
{ "_id" : ObjectId("5b7589f65591ee81f5f24102"), "title" : "python" }
{ "_id" : ObjectId("5b758a145591ee81f5f24103"), "title" : "python", "descr" : "课程" }
{ "_id" : ObjectId("5b758bc25591ee81f5f24104"), "name" : "gj", "title" : "python" }
{ "_id" : ObjectId("5b758e725591ee81f5f24105"), "name" : "java" }

8、删除文档

remove() 方法的基本语法格式如下所示:
db.collection.remove(
   <query>,
   <justOne>
)
> db.mycol.find()
{ "_id" : ObjectId("5b7589f65591ee81f5f24102"), "title" : "python" }
{ "_id" : ObjectId("5b758a145591ee81f5f24103"), "title" : "python", "descr" : "课程" }
{ "_id" : ObjectId("5b758bc25591ee81f5f24104"), "name" : "gj", "title" : "python" }
{ "_id" : ObjectId("5b758e725591ee81f5f24105"), "name" : "java" }
> db.mycol.remove({title:‘python‘})
WriteResult({ "nRemoved" : 3 })
> db.mycol.find()
{ "_id" : ObjectId("5b758e725591ee81f5f24105"), "name" : "java" }

全部删除

> db.mycol.remove({})

9、数据查询

MongoDB 查询数据的语法格式如下:

db.collection.find(query, projection)
query :可选,使用查询操作符指定查询条件
projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。
如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,语法格式如下:
>db.col.find().pretty()
> db.mycol.findOne()
{ "_id" : ObjectId("5b7592253a1d5dd1beb2b7ac"), "title" : "js" }
> db.mycol.find().pretty()
{ "_id" : ObjectId("5b7592253a1d5dd1beb2b7ac"), "title" : "js" }
{ "_id" : ObjectId("5b75922d3a1d5dd1beb2b7ad"), "title" : "python" }

10、条件操作符

MongoDB中条件操作符有:

(>) 大于 - $gt
(<) 小于 - $lt
(>=) 大于等于 - $gte
(<= ) 小于等于 - $lte
> db.mycol.insert({age:12})
WriteResult({ "nInserted" : 1 })
> db.mycol.find({‘age‘:{$lt:13}})
{ "_id" : ObjectId("5b7593845591ee81f5f24107"), "age" : 12 }
Select * from mycol where age < 13;

11、模糊匹配

查询 title 包含"教"字的文档:

db.col.find({title:/教/})
查询 title 字段以"教"字开头的文档:

db.col.find({title:/^教/})
查询 titl e字段以"教"字结尾的文档:

db.col.find({title:/教$/})

12、使用函数查询,其实就是js

> db.mycol.find({$where: function(){return this.age==12}} )
{ "_id" : ObjectId("5b7593385591ee81f5f24106"), "age" : "12" }
{ "_id" : ObjectId("5b7593845591ee81f5f24107"), "age" : 12 }

13、limit

如果你需要在MongoDB中读取指定数量的数据记录,可以使用MongoDB的Limit方法,limit()方法接受一个数字参数,该参数指定从MongoDB中读取的记录条数。

> db.mycol.find().limit(2)
{ "_id" : ObjectId("5b7592253a1d5dd1beb2b7ac"), "title" : "js" }
{ "_id" : ObjectId("5b75922d3a1d5dd1beb2b7ad"), "title" : "python" }

我们除了可以使用limit()方法来读取指定数量的数据外,还可以使用skip()方法来跳过指定数量的数据,skip方法同样接受一个数字参数作为跳过的记录条数。

> db.mycol.find()
{ "_id" : ObjectId("5b7592253a1d5dd1beb2b7ac"), "title" : "js" }
{ "_id" : ObjectId("5b75922d3a1d5dd1beb2b7ad"), "title" : "python" }
{ "_id" : ObjectId("5b7593385591ee81f5f24106"), "age" : "12" }
{ "_id" : ObjectId("5b7593845591ee81f5f24107"), "age" : 12 }
> db.mycol.find().limit(2)
{ "_id" : ObjectId("5b7592253a1d5dd1beb2b7ac"), "title" : "js" }
{ "_id" : ObjectId("5b75922d3a1d5dd1beb2b7ad"), "title" : "python" }
> db.mycol.find().limit(2).skip(1)
{ "_id" : ObjectId("5b75922d3a1d5dd1beb2b7ad"), "title" : "python" }
{ "_id" : ObjectId("5b7593385591ee81f5f24106"), "age" : "12" }
> db.mycol.find().limit(2).skip(2)
{ "_id" : ObjectId("5b7593385591ee81f5f24106"), "age" : "12" }
{ "_id" : ObjectId("5b7593845591ee81f5f24107"), "age" : 12 }

14、排序

在 MongoDB 中使用 sort() 方法对数据进行排序,sort() 方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而 -1 是用于降序排列。

> db.mycol.find().sort({"age":-1})
{ "_id" : ObjectId("5b7593385591ee81f5f24106"), "age" : "12" }
{ "_id" : ObjectId("5b7593845591ee81f5f24107"), "age" : 12 }
{ "_id" : ObjectId("5b75922d3a1d5dd1beb2b7ad"), "title" : "python" }
{ "_id" : ObjectId("5b7592253a1d5dd1beb2b7ac"), "title" : "js" }
> db.mycol.find().sort({"age":-1,"title":1})
{ "_id" : ObjectId("5b7593385591ee81f5f24106"), "age" : "12" }
{ "_id" : ObjectId("5b7593845591ee81f5f24107"), "age" : 12 }
{ "_id" : ObjectId("5b7592253a1d5dd1beb2b7ac"), "title" : "js" }
{ "_id" : ObjectId("5b75922d3a1d5dd1beb2b7ad"), "title" : "python" }

15、统计

> db.sub.find()
{ "_id" : ObjectId("5b7591b73a1d5dd1beb2b7aa"), "title" : "java" }
{ "_id" : ObjectId("5b7591d23a1d5dd1beb2b7ab"), "title" : "python" }
{ "_id" : ObjectId("5b759ade5591ee81f5f24108"), "title" : "c++" }
{ "_id" : ObjectId("5b759ae35591ee81f5f24109"), "title" : "js" }
{ "_id" : ObjectId("5b759ae75591ee81f5f2410a"), "title" : "css" }
> db.sub.find().count()
5

MongoDB聚合操作

聚合

MongoDB中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果。有点类似sql语句中的 count(*)。

MongoDB中聚合的方法使用aggregate()。

聚合框架中常用的几个操作:

$project:修改输入文档的结构。可以用来重命名、增加或删除域,也可以用于创建计算结果以及嵌套文档。
$match:用于过滤数据,只输出符合条件的文档。$match使用MongoDB的标准查询操作。
$limit:用来限制MongoDB聚合管道返回的文档数。
$skip:在聚合管道中跳过指定数量的文档,并返回余下的文档。
$unwind:将文档中的某一个数组类型字段拆分成多条,每条包含数组中的一个值。
$group:将集合中的文档分组,可用于统计结果。
$sort:将输入文档排序后输出。
$geoNear:输出接近某一地理位置的有序文档
> db.sub.aggregate([{$group:{"_id":‘$title‘,counter:{$sum:1}}}])
{ "_id" : "css", "counter" : 1 }
{ "_id" : null, "counter" : 3 }
{ "_id" : "js", "counter" : 1 }
{ "_id" : "python", "counter" : 1 }
{ "_id" : "c++", "counter" : 1 }
{ "_id" : "java", "counter" : 1 }

$match用于过滤数据,只显示符合条件的文档

> db.sub.find()
{ "_id" : ObjectId("5b7591b73a1d5dd1beb2b7aa"), "title" : "java" }
{ "_id" : ObjectId("5b7591d23a1d5dd1beb2b7ab"), "title" : "python" }
{ "_id" : ObjectId("5b759ade5591ee81f5f24108"), "title" : "c++" }
{ "_id" : ObjectId("5b759ae35591ee81f5f24109"), "title" : "js" }
{ "_id" : ObjectId("5b759ae75591ee81f5f2410a"), "title" : "css" }
{ "_id" : ObjectId("5b759ea05591ee81f5f2410b"), "price" : 12000 }
{ "_id" : ObjectId("5b759ea45591ee81f5f2410c"), "price" : 11000 }
{ "_id" : ObjectId("5b759eaa5591ee81f5f2410d"), "price" : 10000 }
> db.sub.aggregate([{$match:{‘price‘:{$gt:10000}}}])
{ "_id" : ObjectId("5b759ea05591ee81f5f2410b"), "price" : 12000 }
{ "_id" : ObjectId("5b759ea45591ee81f5f2410c"), "price" : 11000 }

$project():修改输入文档的结构,如重命名,增加、删除字段、创建计算结果

例如:只显示counter,不显示id

> db.sub.aggregate([{$group:{"_id":‘$title‘,counter:{$sum:1}}},{$project:{_id:0,counter:1}}])
{ "counter" : 1 }
{ "counter" : 3 }
{ "counter" : 1 }
{ "counter" : 1 }
{ "counter" : 1 }
{ "counter" : 1 }

$limit:限制聚合管道返回额文档数

> db.sub.find()
{ "_id" : ObjectId("5b7591b73a1d5dd1beb2b7aa"), "title" : "java" }
{ "_id" : ObjectId("5b7591d23a1d5dd1beb2b7ab"), "title" : "python" }
{ "_id" : ObjectId("5b759ade5591ee81f5f24108"), "title" : "c++" }
{ "_id" : ObjectId("5b759ae35591ee81f5f24109"), "title" : "js" }
{ "_id" : ObjectId("5b759ae75591ee81f5f2410a"), "title" : "css" }
{ "_id" : ObjectId("5b759ea05591ee81f5f2410b"), "price" : 12000 }
{ "_id" : ObjectId("5b759ea45591ee81f5f2410c"), "price" : 11000 }
{ "_id" : ObjectId("5b759eaa5591ee81f5f2410d"), "price" : 10000 }
> db.sub.aggregate([{$limit:2}])
{ "_id" : ObjectId("5b7591b73a1d5dd1beb2b7aa"), "title" : "java" }
{ "_id" : ObjectId("5b7591d23a1d5dd1beb2b7ab"), "title" : "python" }

$skip

> db.sub.aggregate([{$limit:2}])
{ "_id" : ObjectId("5b7591b73a1d5dd1beb2b7aa"), "title" : "java" }
{ "_id" : ObjectId("5b7591d23a1d5dd1beb2b7ab"), "title" : "python" }
> db.sub.aggregate([{$limit:2},{$skip:1}])
{ "_id" : ObjectId("5b7591d23a1d5dd1beb2b7ab"), "title" : "python" }

$unwind:将文档中的某一个数组类型字段拆分成多条,每条包含数组中的一个值。

> db.t2.find()
{ "_id" : 1, "item" : "t-shirt", "size" : [ "S", "M", "L" ] }
> db.t2.aggregate([{$unwind:‘$size‘}])
{ "_id" : 1, "item" : "t-shirt", "size" : "S" }
{ "_id" : 1, "item" : "t-shirt", "size" : "M" }
{ "_id" : 1, "item" : "t-shirt", "size" : "L" }

原文地址:https://www.cnblogs.com/crazyforever/p/9074080.html

时间: 2024-10-28 15:58:19

Python开发之基础Mongodb的相关文章

python开发面向对象基础:接口类&amp;抽象类&amp;多态&amp;多继承

一,接口类 继承有两种用途: 一:继承基类的方法,并且做出自己的改变或者扩展(代码重用) 二:声明某个子类兼容于某基类,定义一个接口类Interface,接口类中定义了一些接口名(就是函数名)且并未实现接口的功能,子类继承接口类,并且实现接口中的功能 开发中容易出现的问题 1 class Alipay: 2 ''' 3 支付宝支付 4 ''' 5 def pay(self,money): 6 print('支付宝支付了%s元'%money) 7 8 class Applepay: 9 ''' 1

python开发模块基础:collections模块

一,collections模块 在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter.deque.defaultdict.namedtuple和OrderedDict等.1.namedtuple: 生成可以使用名字来访问元素内容的tuple2.deque: 双端队列,可以快速的从另外一侧追加和推出对象3.Counter: 计数器,主要用来计数4.OrderedDict: 有序字典5.defaultdict: 带有默

Python开发(基础):初识Python

Python可以应用于众多领域,如:数据分析.组件集成.网络服务.图像处理.数值计算和科学计算等众多领域.目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube.Dropbox.BT.Quora(中国知乎).豆瓣.知乎.Google.Yahoo!.Facebook.NASA.百度.腾讯.汽车之家.美团等.互联网公司广泛使用Python来做的事一般有:自动化运维.自动化测试.大数据分析.爬虫.Web 等. 注视:上述重点字体表示该公司主要使用Python语言开发 Python的种

python开发面向对象基础:封装

一,封装 [封装] 隐藏对象的属性和实现细节,仅对外提供公共访问方式. [好处] 1. 将变化隔离: 2. 便于使用: 3. 提高复用性: 4. 提高安全性: [封装原则] 1. 将不需要对外提供的内容都隐藏起来: 2. 把属性都隐藏,提供公共方法对其访问. 私有变量和私有方法 在python中用双下划线开头的方式将属性隐藏起来(设置成私有的) 私有变量 #其实这仅仅这是一种变形操作 #类中所有双下划线开头的名称如__x都会自动变形成:_类名__x的形式: class A: __N=0 #类的数

python开发模块基础:os&amp;sys

一,os模块 os模块是与操作系统交互的一个接口 1 #!/usr/bin/env python 2 #_*_coding:utf-8_*_ 3 4 ''' 5 os.walk() 显示目录下所有文件和子目录以元祖的形式返回,第一个是目录,第二个是文件夹,第三个是文件 6 open(r'tmp\inner\file',w) 创建文件 7 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 可以先记录当前文件目录 8 os.chdir("dirname") 改

python开发模块基础:re正则

一,re模块的用法 #findall #直接返回一个列表 #正常的正则表达式 #但是只会把分组里的显示出来#search #返回一个对象 .group()#match #返回一个对象 .group() 1 import re 2 #re模块的用法 3 4 ret = re.findall('a', 'eva egon yuan') # 返回所有满足匹配条件的结果,放在列表里 5 print(ret) #结果 : ['a', 'a'] 6 7 ret = re.search('a', 'eva e

python开发模块基础:序列化模块json,pickle,shelve

一,为什么要序列化 # 将原本的字典.列表等内容转换成一个字符串的过程就叫做序列化'''比如,我们在python代码中计算的一个数据需要给另外一段程序使用,那我们怎么给?现在我们能想到的方法就是存在文件里,然后另一个python程序再从文件里读出来.但是我们都知道,对于文件来说是没有字典这个概念的,所以我们只能将数据转换成字典放到文件中.你一定会问,将字典转换成一个字符串很简单,就是str(dic)就可以办到了,为什么我们还要学习序列化模块呢?没错序列化的过程就是从dic 变成str(dic)的

python开发模块基础:正则表达式&amp;re模块

一,正则表达式 1.字符组:[0-9][a-z][A-Z] 在同一个位置可能出现的各种字符组成了一个字符组,在正则表达式中用[]表示字符分为很多类,比如数字.字母.标点等等.假如你现在要求一个位置"只能出现一个数字",那么这个位置上的字符只能是0.1.2...9这10个数之一.可以写成这种 [0-5a-eA-Z] 取范围的匹配 2.字符 1 #!/usr/bin/python env 2 #_*_coding:utf-8_*_ 3 4 . 匹配除换行符以外的任意字符 5 \w 匹配字母

Python开发(基础):列表Dict

Dict 内置函数 #!/user/bin/evn python # -*- coding:utf-8 -*- userinfo = {     1:'alex',     'age':19,     3:'tony' } print userinfo # class dict(object): #     """ #     dict() -> new empty dictionary #     dict(mapping) -> new dictionary