学习
实践
活动
工具
TVP
写文章

《Python入门05》学Python你要必懂的容器模型-“字典”!

重磅知识,第一时间送达

引言

字典是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只有一种内置的映射类型,那就是字典。

字典方法:字典有很多方法,这些方法的调用方式与列表和字符串的方法相同。

大家在学习过程中,还是要多敲代码不要眼高手低,实际操作之后印象才会更加深刻。

重磅知识,第一时间送达

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180809G1XF4V00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券