0

4.2.2Python字典基本操作

Posted by 撒得一地 on 2016年2月14日 in python教程

字典的基本行为在很多方面与序列(sequence)相似,下面是字典几个常用的操作方法,其中d代表某个字典:

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

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

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

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

k in d检查d中是否含有键为k的项。返回布尔型。

下面给出一些实例:

>>> d = dict(name="psz",age=25)
>>> d
{'name': 'psz', 'age': 25}
>>> len(d)
2
>>> d['age']
25
>>> del d['name']
>>> d
{'age': 25}
>>> d['name'] = 'peter'
>>> d
{'name': 'peter', 'age': 25}
>>> 'age' in d
True

尽管字典和列表有很多特性相同,但也有下面一些重要的区别。

键类型:字典的键不一定为整型数据(但也可能是),也可能是其他不可变类型,比如浮点型(实型)、字符串或者元组

自动添加:即使某个键一开始在字典中并不存在,但也可以为它分配一个值,这样字典就会建立新的项。而(在不使用append方法或者其他类似操作的情况下)不能将值关联到列表范围之外的索引上。

成员资格:表达式k in d(d为字典)查找的是键,而不是值。表达式v in l(l为列表)则用来查找值,而不是索引。如果字典含有指定的键,查找相应的值就很容易。

在字典中检查键的成员资格比在列表中检查值的成员资格更高效,数据结构的规模越大,两者的效率差距越明显。

下面看下自动添加字典和列表的区别:

>>> x = []
>>> x[42] = 'psz'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list assignment index out of range
>>> x = {}
>>> x[42] = 'psz'
>>> x
{42: 'psz'}

从上面可以看到,程序试图将字符串'psz'关联到一个空列表的42号位置上——这显然是不对的。因为列表这个位置不存在。如果想将其变为可能,我们可以用[None]*43或者其他方式初始化x,而不能仅仅用[]。而我们可以将'psz'直接关联到空字典的键42上。这样新的项便添加到字典中。

上一篇:

下一篇:

相关推荐

发表评论

电子邮件地址不会被公开。 必填项已用*标注

2 + 6 = ?

网站地图|XML地图

Copyright © 2015-2018 技术拉近你我! All rights reserved.
闽ICP备15015576号-1,版权所有©psz.