1、映射(mapping):通过名字引用值的数据结构。字典是Python中唯一内建的映射类型,字典中的值并没有特殊的顺序,但是都存储在一个特定的键(key)里。键可以是数字、字符串甚至是元组。

2、字典比较适用的情形:表征游戏棋盘的状态,每个键都是由坐标值组成的元组;存储文件修改次数,用文件名作为键;数字电话/地址簿

3、字典的创建和使用

  phonebook={'Alice':'2341','Beth':'9102','Cecil':'3258'},使用大括号,每个键和它的值之间用冒号(:)隔开,项之间用逗号(,)隔开

  空字典用{}

  dict函数,通过其他映射(比如其他字典)或者(键,值)这样的序列对建立字典

  item=[('name','Gumby'),('age',42)]

  d=dict(items)

  d={'age':42,'name':'Gumby'}

  d['name']='Gumby'

4、字典的基本操作

  len(d)返回d中项(键-值对)的数量

  d[k]返回关联到k上的值

  d[k]=v将值V关联到k上

  del d[k]删除键为k的项

  k in d检查d中是否含有键为k的项

  键类型:字典的键不一定为整型;自动添加:即使那个键起初在字典中并不存在,也可以为它分配一个值;成员资格:k in d 查找的是键

5、字典的方法

  clear方法清除字典中所有的项。这个是原地操作,没有返回值(返回None)

  copy方法,返回一个具有相同键值对的新字典,为浅复制

  deepcopy 深复制,修改原始字典,不会修改后续复制的字典

  fromkeys使用给定的键建立新的字典,每个默认对应的值为None

  get方法是个更宽松的访问字典项的方法。get可以访问字典中不存在的项,返回None

  has_key检查字典中是否含有给出的键。d.has_key(k)相当于k in d

  items 将所有的字典项以列表方式返回(键,值)

  iteritems作用于items大致相同,但是返回一个迭代器对象而不是列表。iteritems更高效

  keys将字典的键以列表形式返回

  iterkeys返回针对键的迭代器

  pop方法用来获得对应于给定的值,然后将这个键-值对从字典中移除

  popitem方法类似于list.pop,后者会弹出列表的最后一个元素。但是不同的是,popitem弹出随机的项,因为字典并没有“最后的元素”或者其他顺序的概念。

  setdefault方法在某种程度上类似于get方法,就是能获得与给定键相关联的值,除此之外,setdefault还能在字典中不含有给定键的情况下设定相应的键值。当键不存在是,setdefault返回默认值并相应的更新字典,如果键存在,那么就返回与其对应的值,但不改变字典。默认值是可选的。不设定会默认为None.

  update方法可以利用一个字典项更新另外1个字典。提供的字典中的项会被添加到旧的的字典中,若有相同的键则会进行覆盖。

  values和itervalues 前者以列表的形式返回字典中的值,后者返回值得迭代器。与返回键的列表不同的是,返回键的列表中可以包含重复的元素。

  

  

  

  

python基础教程第4章——字典的更多相关文章

  1. python基础教程-第三章-使用字符串

    本章将会介绍如何使用字符串何世华其他的值(如打印特殊格式的字符串),并简单了解下利用字符串的分割.联接.搜索等方法能做些什么 3.1 基本字符串操作 所有标准的序列操作(索引.分片.乘法.判断成员资格 ...

  2. Python基础教程笔记 第二章

    本章的名字虽然叫列表和元组,但是本章讲的最多的是列表,元祖指讲了很少的一部分.因为元组和列表很多方面都是一样的. 列表和元组的区别:列表可以被修改,元祖不可以被修改. python包含的6种内建序列: ...

  3. python基础教程第5章——条件循环和其他语句

    1.语句块是在条件为真(条件语句)时执行或者执行多次(循环语句)的一组语句.在代码前放置空格来缩进语句即可穿件语句块.块中的每行都应该缩进同样的量.在Phyton中冒号(:)用来标识语句块的开始,块中 ...

  4. 《python基础教程》笔记之 字典

    字典创建 字典由多个键值对组成,每个键和对应值之间用冒号隔开,项之间用逗号隔开,而整个字典用一对大括号括起来,如 >>> phonebook={'alice':'0123', 'Be ...

  5. python基础教程第2章——列表与元组笔记

    1.序列是Python中最基本的数据结构.序列中的每个元素被分配一个序列号——元素的位置,也称索引,第1个索引是0,第2为1,以此类推.序列中的最后1个元素为-1,倒数第2个位-2. python中有 ...

  6. Python基础教程笔记 第一章

    /  表示整除,当导入_future_模块中的version时,/ 表示正常的的除法, 此时可用//表示整除,不论数字是整型还是浮点型,都可以用//表示整除. ** 表示幂次方  例如 2**3    ...

  7. 《Python基础教程》第一章:基础知识

    如果希望只执行普通的除法,可以在程序前加上以下语句:from __future__ import division.还有另外一个方法,如果通过命令行运行Python, 可以使用命令开关-Qnew.此时 ...

  8. python基础教程第6章——抽象

    1.函数的定义,使用def(或“函数定义”)语句: def hello(name): return ‘Hello.'+name+'!' def fibs(num): result=[0,1] for ...

  9. python基础教程第3章——字符串

    1.字符串格式化 字符串格式化操作符%+转换标志+最小字段宽度+点后跟精度值+转换类型 String模块提供另外一种格式化方式 from string import Template s=Templa ...

随机推荐

  1. HDU 5492(DP) Find a path

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5492 题目大意是有一个矩阵,从左上角走到右下角,每次能向右或者向下,把经过的数字记下来,找出一条路径是 ...

  2. 关于svcutil.exe

    添加环境变量 name NETFX4 value C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools Server.Pr ...

  3. 剖析C语言中a=a+++++a的无聊问题

    同僚们闲聊,突然就聊到了a+++++a的问题.这种纯属C语言 “二” 级的问题应该是从a+++a引申出来的吧.于是乎兄弟姐妹们开始讨论它的运算结果,以及改如何理解.更有人写出(a++)+(++a) a ...

  4. Effective Java2读书笔记-类和接口(一)

    第13条:使类和成员的可访问性最小化 设计良好的模块的模块与设计不好的模块区别在于,设计良好的模块会隐藏所有的实现细节,把它的API与他的实现清晰地隔离开来.然后模块之间只通过API通信. 信息隐藏之 ...

  5. ASP.NET MVC3快速入门——第四节、添加一个模型

    在本节中我们将追加一些类来管理数据库中的电影.这些类将成为我们的MVC应用程序中的“模型”部分.我们将使用一个.NET Framework的被称之为“Entiry Framework”的数据访问技术来 ...

  6. Linux 下通过脚本实现远程自动备份

    考虑到在本机上备份数据,一旦该机器硬盘出现故障,数据无法取出.远程手动备份数据费时费力且不及时.最好的方法就是通过脚本实现远程自动互备.但远程无论是通过SSH登陆,还是通过scp拷贝文件都需要输入密码 ...

  7. 使用git pull时,项目没有更新?

    进入项目目录后,执行 git pull 命令,没有将项目更新,并提示下图: 提示:there is no tracking information for the current branch. 意思 ...

  8. 记一次 java程序优化

    优化原因 环境中部署两个程序: web应用 tomcat   10G(webservice服务端,前端web服务) java应用               5G(webservice客户端,sock ...

  9. Node.js 和Socket.IO 实现chat WEBIM

    socket官方:   http://socket.io/  需求:实现WEB IM功能,数据从服务器PUSH  不是PULL  websocket是基于HTML5的新特性,不兼容IE6,7,8 .. ...

  10. POJ3278 Catch That Cow(BFS)

    Description Farmer John has been informed of the location of a fugitive cow and wants to catch her i ...