前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《Python入门05》学Python你要必懂的容器模型--“字典”!!

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

作者头像
ShuYini
发布2019-08-08 15:33:35
6290
发布2019-08-08 15:33:35
举报
文章被收录于专栏:自然语言处理(NLP)论文速递

点击上方的“小小白AI”,选择“关注”

重磅知识,第一时间送达

引言

字典是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)

>>> d

{'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

>>> d

{'name': 'Danny', 'age': 19}

(4)k in d 检查字典d是否包含键为k的项

>>> 'name' in d

True

(5)del d[k]删除键为k的项

>>> del d['age']

>>> d

{'name': 'Danny'}

(6)方法clear() 删除字典中的所有项

>>> d

{'name': 'Danny'}

>>> d.clear()

>>> d

{}

(7)方法copy() 返回一个新的字典(但是这是浅拷贝,因为值本身是原件,而非副本)

>>> x = {'username': 'admin', 'machines': ['foo', 'bar', 'baz']}

>>> y = x.copy()

>>> y['username'] = 'mlh'

>>> y['machines'].remove('bar')

>>> y

{'username': 'mlh', 'machines': ['foo', 'baz']}

>>> x

{'username': 'admin', 'machines': ['foo', 'baz']}

(8)方法fromkeys 创建一个新的字典,其中包含指定的键,且每个键值对应的是none

>>> x

{'username': 'admin', 'machines': ['foo', 'baz']}

>>> x.fromkeys(['pxj','zt'])

{'pxj': None, 'zt': None}

(9)方法get,访问字典中的键对应的值,如果没有则返回None

>>> x

{'username': 'admin', 'machines': ['foo', 'baz']}

>>> print(x.get('pxj'))

None

(10)方法pop,获取指定键相关联的值,并将该键值对删除

>>> x

{'username': 'admin', 'machines': ['foo', 'baz']}

>>> x.pop('username')

'admin'

>>> x

{'machines': ['foo', 'baz']}

(11)方法popitem,随机的弹出一个键值对,并在字典中删除

>>> y

{'username': 'mlh', 'machines': ['foo', 'baz'], 'hello': 'word', 'hao': 'de'}

>>> y.popitem()

('hao', 'de')

>>> y

{'username': 'mlh', 'machines': ['foo', 'baz'], 'hello': 'word'}

四、总结

映射:映射让你能够使用任何不可变的对象(最常用的是字符串和元组)来标识其元素。Python只有一种内置的映射类型,那就是字典。 字典方法:字典有很多方法,这些方法的调用方式与列表和字符串的方法相同。

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

重磅知识,第一时间送达

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-08-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AINLPer 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档