wangjuju123

2018-11-14   阅读量: 527

数据分析师 Python编程

基本的字典操作

扫码加入数据分析学习群

字典的基本行为在很多方面都类似于序列。

 len(d)返回字典d包含的项(键-值对)数。

 d[k]返回与键k相关联的值。

 d[k] = v将值v关联到键k。

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

 k in d检查字典d是否包含键为k的项。 虽然字典和列表有多个相同之处,但也有一些重要的不同之处。

 键的类型:字典中的键可以是整数,但并非必须是整数。字典中的键可以是任何不可变 的类型,如浮点数(实数)、字符串或元组。

 自动添加:即便是字典中原本没有的键,也可以给它赋值,这将在字典中创建一个新项。 然而,如果不使用append或其他类似的方法,就不能给列表中没有的元素赋值。

 成员资格:表达式k in d(其中d是一个字典)查找的是键而不是值,而表达式v in l(其 中l是一个列表)查找的是值而不是索引。这看似不太一致,但你习惯后就会觉得相当自 然。毕竟如果字典包含指定的键,检查相应的值就很容易。

前述第一点(键可以是任何不可变的类型)是字典的主要优点。第二点也很重要,下面的示 例说明了这种差别:

>>> x = []

>>> x[42] = 'Foobar'

Traceback (most recent call last): File "<stdin>", line 1, in ?

IndexError: list assignment index out of range

>>> x = {}

>>> x[42] = 'Foobar'

>>> x

{42: 'Foobar'}

首先,我尝试将字符串'Foobar'赋给一个空列表中索引为42的元素。这显然不可能,因为 没有这样的元素。要让这种操作可行,初始化x时,必须使用[None] * 43之类的代码,而不能使 用[]。然而,接下来的尝试完全可行。这次我将'Foobar'赋给一个空字典的键42;如你所见,这 样做一点问题都没有:在这个字典中添加了一个新项,我得逞了。

添加CDA认证专家【维克多阿涛】,微信号:【cdashijiazhuang】,提供数据分析指导及CDA考试秘籍。已助千人通过CDA数字化人才认证。欢迎交流,共同成长!
0.0000 0 1 关注作者 收藏

评论(0)


暂无数据

推荐课程

推荐帖子