最近在工作之余开始学习机器学习方面的知识了,在决策树构建的时候就遇到了Python字典知识,所以才回过头来看。之前也看过Python但是基本没用过所以也就没记住,索性就直接在学习机器学习的过程中遇到再学,再总结。
一、字典中的一些概念
(1)字典的定义(字典的键和值):字典是由键和键对应的值构成的对组成(我们也可以将键-值对称之为项)。
(2)字典的创建方式:字典可以用下面的方式创建
phonebook={'Alice':'2341','Beth':'9102','Ceil':'3258'}
每个键和它的值之间用冒号(:)隔开,项之间用逗号(,)隔开,整个字典用一对花括号{ }括起来。
(3)字典是通过名字引用值的一种数据结构,这种结构类型称之为映射。字典是Python中唯一内建的映射类型。
(4)字典中的值并没有特定的顺序,但是都存储在一个特定的键(Key)里面。键可以是数字,字符串,甚至是元组。
二、字典的使用
(1)dict( )函数:用于构建字典
a.通过其他映射方式构建字典
>>> items=[('name','Gumby'),('age','42')]
>>> d=dict(items)
>>> d
{'age': '42', 'name': 'Gumby'}
b.通过关键字参数构建字典
>>> d=dict(name='Gumby',age=42)
>>> d
{'age': 42, 'name': 'Gumby'}
(2)基本的字典操作:
len(d)是返回d中项(键-值对)的数量。
d[k]返回关联到键K上的值。
d[k]=v将值V关联到键K上
del d[k]删除键为k的项
k in d 检查d中是否有含有键为k的项
(3)键和列表的区别:
键类型:字典的键不一定为整形数据,键可以为任何不可变类型,比如浮点数(实型),字符串或者元组,这是字典最强大的地方。
自动添加:即使一个键起初在字典中不存在,也可以为它分配一个值,这样字典就会建立新的项。不能将值关联到列表范围之外的索引上。
请看下面的例子:
>>> x=[ ]
>>> x[42]='Foobar'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list assignment index out of range
>>> x={ }
>>> x[42]='Foobar'
>>> x
{42: 'Foobar'}
程序试图将字符串'Foobar'关联到空列表的42号位置上,这显然是不可能的,因为这个位置根本不存在,为了将其变得存在,我必须用[none]*43或者其他的方式初始化x,而不能仅使用[ ],而第二个例子就很好,新的项已经添加到字典中了。
成员资格:表达式 k in d (d为字典)查找的是键,而不是值。表达式 v in l (l为列表)则用来查找值,而不是索引。在字典中查找成员资格比在列表中查找成员资格更高效,数据的规模越大,两者的差距越大。
三、其他
其他的知识:利用字典格式化字符串;字典方法可以先大概浏览一下,在需要的时候回过头来再看会更容易记住。