字典是一种通过名字或者关键字引用的得数据结构,其键可以是数字、字符串、元组,这种结构类型也称之为映射。字典类型是Python中唯一內建的映射类型,基本的操作包括如下: 
(1)len():返回字典中键—值对的数量; 
(2)d[k]:返回关键字对于的值; 
(3)d[k]=v:将值关联到键值k上; 
(4)del d[k]:删除键值为k的项; 
(5)key in d:键值key是否在d中,是返回True,否则返回False。

一、字典的创建 
1.1 直接创建字典

d={'one':1,'two':2,'three':3}
print d
print d['two']
print d['three']
运算结果:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
{'three': 3, 'two': 2, 'one': 1}
2
3

1.2 通过dict创建字典

# _*_ coding:utf-8 _*_
items=[('one',1),('two',2),('three',3),('four',4)]
print u'items中的内容:'
print items
print u'利用dict创建字典,输出字典内容:'
d=dict(items)
print d
print u'查询字典中的内容:'
print d['one']
print d['three']
运算结果:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
items中的内容:
[('one', 1), ('two', 2), ('three', 3), ('four', 4)]
利用dict创建字典,输出字典内容:
{'four': 4, 'three': 3, 'two': 2, 'one': 1}
查询字典中的内容:
1
3 或者通过关键字创建字典
# _*_ coding:utf-8 _*_
d=dict(one=1,two=2,three=3)
print u'输出字典内容:'
print d
print u'查询字典中的内容:'
print d['one']
print d['three']

运算结果: =======RESTART: C:\Users\Mr_Deng\Desktop\test.py======= 输出字典内容:

{'three': 3, 'two': 2, 'one': 1}

查询字典中的内容:

1

3

二、字典的格式化字符串

# _*_ coding:utf-8 _*_
d={'one':1,'two':2,'three':3,'four':4}
print d
print "three is %(three)s." %d

运算结果: =======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======

{'four': 4, 'three': 3, 'two': 2, 'one': 1}

three is 3.

三、字典方法 
3.1 clear函数:清除字典中的所有项

# _*_ coding:utf-8 _*_
d={'one':1,'two':2,'three':3,'four':4}
print d
d.clear()
print d

运算结果: =======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======

{'four': 4, 'three': 3, 'two': 2, 'one': 1}

{}

请看下面两个例子 
3.1.1

# _*_ coding:utf-8 _*_
d={}
dd=d
d['one']=1
d['two']=2
print dd
d={}
print d
print dd

运算结果: =======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======

{'two': 2, 'one': 1}

{}

{'two': 2, 'one': 1}

3.1.2

# _*_ coding:utf-8 _*_
d={}
dd=d
d['one']=1
d['two']=2
print dd
d.clear()
print d
print dd

运算结果: =======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======

{'two': 2, 'one': 1}

{}

{}

3.1.2与3.1.1唯一不同的是在对字典d的清空处理上,3.1.1将d关联到一个新的空字典上,这种方式对字典dd是没有影响的,所以在字典d被置空后,字典dd里面的值仍旧没有变化。但是在3.1.2中clear方法清空字典d中的内容,clear是一个原地操作的方法,使得d中的内容全部被置空,这样dd所指向的空间也被置空。 
3.2 copy函数:返回一个具有相同键值的新字典

# _*_ coding:utf-8 _*_
x={'one':1,'two':2,'three':3,'test':['a','b','c']}
print u'初始X字典:'
print x
print u'X复制到Y:'
y=x.copy()
print u'Y字典:'
print y
y['three']=33
print u'修改Y中的值,观察输出:'
print y
print x
print u'删除Y中的值,观察输出'
y['test'].remove('c')
print y
print x

运算结果: =======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======

初始X字典: {'test': ['a', 'b', 'c'], 'three': 3, 'two': 2, 'one': 1}

X复制到Y: Y字典: {'test': ['a', 'b', 'c'], 'one': 1, 'three': 3, 'two': 2}

修改Y中的值,观察输出:

{'test': ['a', 'b', 'c'], 'one': 1, 'three': 33, 'two': 2}

{'test': ['a', 'b', 'c'], 'three': 3, 'two': 2, 'one': 1}

删除Y中的值,观察输出

{'test': ['a', 'b'], 'one': 1, 'three': 33, 'two': 2}

{'test': ['a', 'b'], 'three': 3, 'two': 2, 'one': 1}

注:在复制的副本中对值进行替换后,对原来的字典不产生影响,但是如果修改了副本,原始的字典也会被修改。deepcopy函数使用深复制,复制其包含所有的值,这个方法可以解决由于副本修改而使原始字典也变化的问题。

# _*_ coding:utf-8 _*_
from copy import deepcopy
x={}
x['test']=['a','b','c','d']
y=x.copy()
z=deepcopy(x)
print u'输出:'
print y
print z
print u'修改后输出:'
x['test'].append('e')
print y
print z

运算输出:

输出:

{'test': ['a', 'b', 'c', 'd']}

{'test': ['a', 'b', 'c', 'd']}

修改后输出: =======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======

{'test': ['a', 'b', 'c', 'd', 'e']}

{'test': ['a', 'b', 'c', 'd']}

3.3 fromkeys函数:使用给定的键建立新的字典,键默认对应的值为None

# _*_ coding:utf-8 _*_
d=dict.fromkeys(['one','two','three'])
print d

运算输出:

=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======

{'three': None, 'two': None, 'one': None}

或者指定默认的对应值

# _*_ coding:utf-8 _*_
d=dict.fromkeys(['one','two','three'],'unknow')
print d

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======

{'three': 'unknow', 'two': 'unknow', 'one': 'unknow'}

3.4 get函数:访问字典成员

# _*_ coding:utf-8 _*_
d={'one':1,'two':2,'three':3}
print d
print d.get('one')
print d.get('four')

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======

{'three': 3, 'two': 2, 'one': 1}

1

None

注:get函数可以访问字典中不存在的键,当该键不存在是返回None 
3.5 has_key函数:检查字典中是否含有给出的键

# _*_ coding:utf-8 _*_
d={'one':1,'two':2,'three':3}
print d
print d.has_key('one')
print d.has_key('four')

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======

{'three': 3, 'two': 2, 'one': 1}

True

False

3.6 items和iteritems函数:items将所有的字典项以列表方式返回,列表中项来自(键,值),iteritems与items作用相似,但是返回的是一个迭代器对象而不是列表

# _*_ coding:utf-8 _*_
d={'one':1,'two':2,'three':3}
print d
list=d.items()
for key,value in list:
print key,':',value

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======

{'three': 3, 'two': 2, 'one': 1}

three : 3

two : 2

one : 1

# _*_ coding:utf-8 _*_
d={'one':1,'two':2,'three':3}
print d
it=d.iteritems()
for k,v in it:
print "d[%s]="%k,v

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======

{'three': 3, 'two': 2, 'one': 1}

d[three]= 3

d[two]= 2

d[one]= 1

3.7 keys和iterkeys:keys将字典中的键以列表形式返回,iterkeys返回键的迭代器

# _*_ coding:utf-8 _*_
d={'one':1,'two':2,'three':3}
print d
print u'keys方法:'
list=d.keys()
print list
print u'\niterkeys方法:'
it=d.iterkeys()
for x in it:
print x

运算结果:

{'three': 3, 'two': 2, 'one': 1}

keys方法:

['three', 'two', 'one']

iterkeys方法:

=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======

three

two

one

3.8 pop函数:删除字典中对应的键

# _*_ coding:utf-8 _*_
d={'one':1,'two':2,'three':3}
print d
d.pop('one')
print d

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======

{'three': 3, 'two': 2, 'one': 1}

{'three': 3, 'two': 2}

3.9 popitem函数:移出字典中的项

# _*_ coding:utf-8 _*_
d={'one':1,'two':2,'three':3}
print d
d.popitem()
print d

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======

{'three': 3, 'two': 2, 'one': 1}

{'two': 2, 'one': 1}

3.10 setdefault函数:类似于get方法,获取与给定键相关联的值,也可以在字典中不包含给定键的情况下设定相应的键值

# _*_ coding:utf-8 _*_
d={'one':1,'two':2,'three':3}
print d
print d.setdefault('one',1)
print d.setdefault('four',4)
print d

运算结果:

{'three': 3, 'two': 2, 'one': 1}

1

4

{'four': 4, 'three': 3, 'two': 2, 'one': 1}

3.11 update函数:用一个字典更新另外一个字典

# _*_ coding:utf-8 _*_
d={
'one':123,
'two':2,
'three':3
}
print d
x={'one':1}
d.update(x)
print d

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======

{'three': 3, 'two': 2, 'one': 123}

{'three': 3, 'two': 2, 'one': 1}

3.12 values和itervalues函数:values以列表的形式返回字典中的值,itervalues返回值得迭代器,由于在字典中值不是唯一的,所以列表中可以包含重复的元素

# _*_ coding:utf-8 _*_
d={
'one':123,
'two':2,
'three':3,
'test':2
}
print d.values()

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======

[2, 3, 2, 123]

from:http://blog.csdn.net/u010480899/article/details/52737739

Python——字典与字典方法的更多相关文章

  1. python 字典内置方法get应用

    python字典内置方法get应用,如果我们需要获取字典值的话,我们有两种方法,一个是通过dict['key'],另外一个就是dict.get()方法. 今天给大家分享的就是字典的get()方法. 这 ...

  2. Python中多个列表与字典的合并方法

    Python中多个列表与字典的合并方法 1多列表的合并 1)a+=b a=['] b = ['] a += b print(a) >>>['] 2) a.extend(b) a=[' ...

  3. python 3.x 字典的11种方法

    python 3.x 字典的11种方法2017年11月25日 01:02:11 Milton-Long 阅读数:535 标签: python python字典方法 更多个人分类: python-学习之 ...

  4. 遍历python字典几种方法

    遍历python字典几种方法 from: http://ghostfromheaven.iteye.com/blog/1549441 aDict = {'key1':'value1', 'key2': ...

  5. python 字典(dict)get方法应用

    如果我们需要获取字典值的话,我们有两种方法,一个是通过dict['key'],另外一个就是dict.get()方法. 今天给大家分享的就是字典的get()方法. 这里我们可以用字典做一个小游戏,假设用 ...

  6. Python简单遍历字典及删除元素的方法

    Python简单遍历字典及删除元素的方法 这篇文章主要介绍了Python简单遍历字典及删除元素的方法,结合实例形式分析了Python遍历字典删除元素的操作方法与相关注意事项,需要的朋友可以参考下 具体 ...

  7. Python中使用item()方法遍历字典的例子

    Python中使用item()方法遍历字典的例子 这篇文章主要介绍了Python中使用item()方法遍历字典的例子,for...in这种是Python中最常用的遍历字典的方法了,需要的朋友可以参考下 ...

  8. Python 字典(Dictionary) clear()方法

    Python 字典(Dictionary) clear()方法 描述 Python 字典(Dictionary) clear() 函数用于删除字典内所有元素.高佣联盟 www.cgewang.com ...

  9. Python 字典(Dictionary) type()方法

    Python 字典(Dictionary) type()方法 描述 Python 字典(Dictionary) type() 函数返回输入的变量类型,如果变量是字典就返回字典类型.高佣联盟 www.c ...

  10. Python 字典(Dictionary) str()方法

    Python 字典(Dictionary) str()方法 描述 Python 字典(Dictionary) str() 函数将值转化为适于人阅读的形式,以可打印的字符串表示.高佣联盟 www.cge ...

随机推荐

  1. 在Qt中如何使用QtDesigner创建的UI文件(一) (转)

    使用Qt有一些时间了,一直在IDE环境(qtcreator和VS2003+集成器)中使用,自然少了很多麻烦的步骤.但是在享受这种便利的同时,我们也失去了理解更多知识背后的点滴.在IDE中,如果我们要开 ...

  2. centos6.6安装php5.3.3(2015/3/4)

    问题:centos6.6因要升级mysql5.5所以yum重新更新了源,导致按照原来lamp环境安装步骤,安装php时一直找webtitic源,php5.3.24 而且一直无法安装下去 利用yum r ...

  3. bzoj 2178 圆的面积并——辛普森积分

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2178 把包含的圆去掉.横坐标不相交的一段一段圆分开算.算辛普森的时候预处理 f( ) ,比如 ...

  4. Redis简单介绍与安装

    Redis是一个开源,高级的键值存储和一个适用的解决方案,用于构建高性能,可扩展的Web应用程序. Redis有三个主要特点,使它优越于其它键值数据存储系统 - 1) Redis将其数据库完全保存在内 ...

  5. 运维命令:tcpdump

    tcpdump命令  tcpdump 命令是一款sniffer工具,它可以打印所有经过网络接口的数据包的头信息,也可以使用 -w 选项将数据包保存到文件中,方便以后分析. 常用参数: -a:尝试将网络 ...

  6. Linux 文件名中包含特殊字符

    文件和文件夹的名称中有特殊字符,操作有两种方式( - 在文件名称最前面除外). 例如:文件名为 a&b.c 1.通过转移符 "\" $ touch   a\&b.c ...

  7. Face detection in color images, 彩色图像中的人脸检测

    人脸检测在视频监督,人机交互,人脸识别和人脸图像数据库管理等应用领域处于很重要的地位. 论文<Face detection in color images>中给出一种在YCbCr空间检测人 ...

  8. Mysql中的GROUP_CONCAT使用

    SELECT res.ITRId Id, res.ITRResourceName ResourceName, res.ITRSupplierName SupplierName, res.ITRDept ...

  9. GOF23设计模式之享元模式(flyweight)

    一.享元模式概述 内存属于稀缺资源,不要随便浪费.如果有很多个完全相同或相似的对象,可以通过享元模式,节省内存. 享元模式核心: (1)享元模式可以共享的.方式高效的支持大量细粒度对象的重用: (2) ...

  10. GOF23设计模式之桥接模式(bridge)

    一.桥接模式概述 桥接模式核心要点: 处理多层继承结构,处理多维度变化的场景,将各个维度设计成独立的继承结构,使各个维度可以独立的扩展在抽象层建立关联. 二.桥接模式场景提出与存在问题 商城系统中常见 ...