重磅知识,第一时间送达
引言
字典是Python中最基本的容器模型,在以后批量处理数据的时候经常用到,比如:对JSON类型的文件进行处理时大多都要先转成字典来进行处理,然后再转成JSON类型。好,废话不多说直接开始吧!
本文概述
对于字典,本文将从什么是字典、字典的用途、字典的创建与使用、三个方面进行讲述。
一、什么是字典?
官方的解释:字典是Python语言中唯一的映射类型。映射类型对象(Key)和只想的对象(Value)是一对多的关系,通常被认为是可变的哈希表。字典对象是可变的,它是一个容器类型,能够存储任意个数的Python对象,其中也可包括其他容器类型。
通俗的解释:就是一个“柜子”里面有很多“小空间”,这个“小空间”根据职能可以分为“放书的小空间”、“放衣服的小空间”、“放鞋的小空间”等,并且这些“小空间”里面按照职能都放了对应的书、衣服、鞋等,这就组成了一个字典。一图胜千言,如下:
学过C++、Java的小伙伴,你可能会想到Map容器,其实Python中的字典与C++中的map容器很相似,都是键值对的形式存储,然而Python中对字典的操作远比C++中对map的操作要方便的多。
二、字典有什么用
想想一下当你需要快速的获取对应key的value的时候,就可以使用python的字典了。比如:根据上面我举得关于柜子的例子,让你去柜子里面拿一本书’围城‘,你就可以直接根据关键字(key)‘放书的小空间’找到这本书‘ 围城‘,你过你没有这个关键字,你可能要去整个柜子里面去找。这样就会相当的麻烦。
再比如一个人是有名字,但是这个人还有其他的属性,例如:年龄,性别等等。这个人就会被封装成一个对象。如果有很多人的时候,我们需要快速的根据一个人的名字获取对应名字的对象,这个时候字典就有用了。如果采用数组,我们需要遍历整个数组,才可以根据名字找到这个人。如果是字典(以名字为key,以人的对象为value),就可以直接根据名字得到这个对象,就不要遍历操作了。
根据上面的两个例子可以看到,使用字典管理数据对象,存取数据对象的时候会很有用。
三、创建和使用字典
1、字典创建
(1)字典由键及其对应的值组成,其中键和值之间由冒号(:)分开,且键和值都用上单引号(’)引起来,这种键值对被称为项,第一项和第二项之间由逗号(,)隔开。如下所示:
phonebook={‘Jane’:‘123’,‘Danny’:‘2321’,‘Ming’:‘3232’}
(2)字典的创建除了上面一种方式,还可以使用dict函数来创建。例如:
>>> obje=[('name','Danny'),('age','12')]
>>> d=dict(obje)
{'name': 'Danny', 'age': '12'}
2、字典操作函数
(1)获取字典键值个数
>>> len(d)
2
(2)d[k]返回与键k相关联的值
>>> d['name']
'Danny'
(3)d[k]=v将值v关联到键k
>>> d['age']=19
{'name': 'Danny', 'age': 19}
(4)k in d 检查字典d是否包含键为k的项
>>> 'name' in d
True
(5)del d[k]删除键为k的项
>>> del d['age']
{'name': 'Danny'}
(6)方法clear() 删除字典中的所有项
{'name': 'Danny'}
>>> d.clear()
{}
(7)方法copy() 返回一个新的字典(但是这是浅拷贝,因为值本身是原件,而非副本)
>>> x = {'username': 'admin', 'machines': ['foo', 'bar', 'baz']}
>>> y = x.copy()
>>> y['username'] = 'mlh'
>>> y['machines'].remove('bar')
{'username': 'mlh', 'machines': ['foo', 'baz']}
{'username': 'admin', 'machines': ['foo', 'baz']}
(8)方法fromkeys 创建一个新的字典,其中包含指定的键,且每个键值对应的是none
{'username': 'admin', 'machines': ['foo', 'baz']}
>>> x.fromkeys(['pxj','zt'])
{'pxj': None, 'zt': None}
(9)方法get,访问字典中的键对应的值,如果没有则返回None
{'username': 'admin', 'machines': ['foo', 'baz']}
>>> print(x.get('pxj'))
None
(10)方法pop,获取指定键相关联的值,并将该键值对删除
{'username': 'admin', 'machines': ['foo', 'baz']}
>>> x.pop('username')
'admin'
{'machines': ['foo', 'baz']}
(11)方法popitem,随机的弹出一个键值对,并在字典中删除
{'username': 'mlh', 'machines': ['foo', 'baz'], 'hello': 'word', 'hao': 'de'}
>>> y.popitem()
('hao', 'de')
{'username': 'mlh', 'machines': ['foo', 'baz'], 'hello': 'word'}
四、总结
映射:映射让你能够使用任何不可变的对象(最常用的是字符串和元组)来标识其元素。Python只有一种内置的映射类型,那就是字典。
字典方法:字典有很多方法,这些方法的调用方式与列表和字符串的方法相同。
大家在学习过程中,还是要多敲代码不要眼高手低,实际操作之后印象才会更加深刻。
重磅知识,第一时间送达
领取专属 10元无门槛券
私享最新 技术干货