字典是python中唯一内建的映射类型。字典中的值并没有特殊的顺序,但是都存储在一个特定的键(key)里。
键可以是数字,字符串甚至是元组。
1. 创建和使用字典
字典可以通过下面的方式创建:
复制代码 代码如下:
phonebook = {'Alice':'2341','Beth':'9102','Ceil':'3258'}
字典由多个键及与其对应的值构成的对组成。每个键和它的值之间用冒号(:)隔开,项之间用逗号(,)隔开,而整个字典是由一对大括号括起来。空字典:{}
1.1 dict函数
可以用dict函数通过映射(比如其他字典)或者(键,值)这样的序列建立字典。
复制代码 代码如下:
>>> items = [('name','Gumby'),('age'.42)]
>>> d = dict(items)
>>> d
{'age':42,'name':'Gumby'}
>>> d = dict(name='Gumby','age'=42)
>>> d
{'age':42,'name':'Gumby'}
1.2 基本字典操作
(1)len(d)返回d中项(键-值对)的数量;
(2)d[k]返回关联到k上的值;
(3)d[k]=v将值v关联到键k上;
(4)del d[k]删除键为k的项;
(5)k in d检查d中是否有含键为k的项;
1.3 字典的格式化字符串
字典格式化字符串:在每个转换说明符中的%字符后面,可以加上(用圆括号括起来的)键,后面再跟上其他说明元素。
只要所有给出的键都能在字典中找到,就可以获得任意数量的转换说明符。
复制代码 代码如下:
>>> temple = ‘the price of cake is $%(cake)s,the price of milk of cake is $%(milk)s. $%(cake)s is OK'
>>> price = {'cake':4,'milk':5}
>>>print temple % price
‘the price of cake is $4,the price of milk of cake is $5. $4 is OK'
1.4 字典方法
1.4.1 clear
clear方法清除字典中所有的项,这是个原地操作,无返回值(或者说返回none)。
考虑下面2种情况:
a.将x关联到一个新的空字典来清空它,这对y一点影响都没有,y还是关联到原先的字典
复制代码 代码如下:
>>> x = {}
>>> y = x
>>> x['key'] = 'value'
>>> y
{'key':'value'}
>>> x = {}
>>> y
{'key':'value'}
b.如果想清空原始字典中所有的元素,必须用clear方法。
复制代码 代码如下:
>>> x = {}
>>> y = x
>>> x['key'] = 'value'
>>> y
{'key':'value'}
>>> x.clear()
>>> y
{}
1.4.2 copy
copy方法返回一个具有相同键-值对的新字典(这个方法实现的是浅复制,因为值本身是相同的,而不是副本)
在副本中替换值时,原始字典不受影响,但是如果修改了某个值,原始字典会改变。]
复制代码 代码如下:
>>> x = {'a':1,'b':[2,3,4]}
>>> y = x.copy()
>>> y['a'] = 5
>>> y['b'].remove(3)
>>> y
{'a':5,'b':[2,4]}
>>> x
{'a':1,'b':[2,4]}
避免这个问题的方法是使用深度复制-deepcopy(),复制其包含所有的值。
复制代码 代码如下:
>>> x = {'a':1,'b':[2,3,4]}
>>> y = x.copy()
>>> z = x.deepcopy()
>>> x['a'].append(5)
>>> y
{'a':1,5,'b':[2,3.4]}
>>> z
{'a':1,'b':[2,3,4]}
1.4.3 fromkeys
fromkeys方法使用给定的键建立新的字典,每个键默认对应的值为None,可以直接在所有字典的类型dict上调用此方法。如果不想使用默认值,也可以自己提供值。
复制代码 代码如下:
>>> {}.fromkeys(['name','age'])
{'age':None,'name':None}
>>>
>>> dict.fromkeys(['name','age'],'unknow')
{'age':'unknow','name':'unknow'}
1.4.4 get
get方法是个更宽松的访问字典项的方法。当使用get访问一个不存在的键时,会得到None值。还可以自定义“默认”值,替换None。
复制代码 代码如下:
>>> d = {}
>>> print d.get('name')
None
>>> d.get("name",'N/A')
'N/A'
>>> d[''name] = 'Eric'
>>> d.get('name')
'Eric'
1.4.5 has_key
has_key方法可以检查字典中是否含有给出的键。d.has_key(k)
复制代码 代码如下:
>>> d = {}
>>> d.has_key('name')
False
1.4.6 items和iteritems
items方法将所有的字典项以列表方式返回,但是列表中的每一项(键,值)返回时并没有特殊的顺序。iteritems方法的作用大致相同,但是会返回一个迭代器对象而不是列表:
复制代码 代码如下:
>>> d = {'a':1,'b':2,'c':3}
>>>d.items
[('a',1),('b',2),('c',3)]
>>> it = d.iteritems()
>>> it
<dictionary-iteritems object at 169050>
>>> list(it)
[('a',1),('b',2),('c',3)]
1.4.7 keys和iterkeys
keys方法将字典中的键以列表形式返回,而iterkeys则返回针对键的迭代器。
1.4.8 pop方法
pop方法用来获得对应给定键的值,然后将这个键-值对从字典中移除。
复制代码 代码如下:
>>> d = {'a':1,'b':2,'c':3}
>>> d.pop('a')
>>> d
{'b':2,'c':3}
1.4.10 setdefault
setdefault方法在某种程度上类似于get方法,就是能够获得与给定键相关联的值,还能在字典中不含有给定键的情况下设定相应的键值。
复制代码 代码如下:
>>> d = {}
>>> d.setdefault('name','N/A')
'N/A'
>>> d
{'name': 'N/A'}
>>> d.setdefault('name',A)
'N/A'
如上例,当键存在时,返回默认值(可选)并且相应地更新字典,如果键存在,那么返回与其对应的值,但不改变字典。
1.4.11 update
update方法可以利用一个字典项更新另一个字典。提供的字典项会被添加到旧的字典中,若有相同的键则会进行覆盖。
复制代码 代码如下:
>>> d = {'a':1,'b':2,'c':3}
>>> x = {'a':5,'d':6}
>>> d.update(x)
>>> d
{'a': 5, 'c': 3, 'b': 2, 'd': 6}
1.4.12 values和itervalues
values方法以列表的形式返回字典中的值(itervalues返回值的迭代器),与返回键的列表不同的是,返回值列表中可以包含重复的元素。
复制代码 代码如下:
>>> d = {}
>>> d[1]=1
>>> d[2]=2
>>> d[3]=3
>>> d[4]=1
>>> d
{1: 1, 2: 2, 3: 3, 4: 1}
>>> d.values()
[1, 2, 3, 1]
相关推荐:
为什么网站要做seo,网站做seo的目的是什么 ,ai初选
SEO有话:如何用精准优化助力企业在线增长,食品微信营销推广
优化投入,让企业更具竞争力,怎样推广营销方案
SEO优化的话题:助力企业成功的关键,夏杰ai智能管家
zblog站群,zblog怎么样 ,欧卡2ai汽车如何使用
如何选择适合你的AI工具?全面解析AI工具哪个好用
seo需要了解什么,seo需要学些什么内容 ,ovo ai
优排软件:高效管理新天地,轻松提升工作效率,长葛外贸网站建设
seo需要什么部门,seo主要干什么 ,ai接入仪器
目前最火的AI软件有哪些?深度解析必备工具
个性化广告:新时代营销的秘密武器,建设经营性网站怎么记账
SEO新人必读:从零开始SEO的核心技巧与实践指南,网站邮件推广设计
seo要寻找什么资源,怎么找seo ,ai插画描边
ChatGPT不能访问,我的学术水平直线下降,泰州大数据ai艾灸价格
seo站内关键词优化,seo关键词优化经验技巧 ,ai 优点
SEO快排还有效果吗揭秘快速排名的真相与未来趋势,ai人像波普
二创AI:打破创意壁垒,引领未来内容创作新潮流,背影教案网站建设游戏
什么是seo反连接,网站反链多好还是少好 ,网易ai产品
seo营销方法是什么,seo营销模式 ,ai山海
SEO已经成为数字营销的核心,如何利用SEO提升网站流量和转化率,含山网站优化推广
智能AI生成文章释放创作新可能
未来写作新方式原创AI文章的无限可能
seo高手有什么条件,seo难上手吗 ,指南ai写作电力创新
中外链:打通全球流量的桥梁,提升网站排名与流量的双重保障,行业网站建设思路
ChatGPT页面无法下拉?禁用浏览器扩展,轻松解决!,imba 1.6 ai
seo独立站是什么,独立站推广是什么 ,ai曲线笔刷扩展
SEO元素-提升网站排名的核心要素,推广分成网站有哪些
自动生成文章的AI软件,助力内容创作的未来
什么是seo方法,何为seo ,ai写作神器源码是什么
“只能写作”:在创作的世界里,选择文字,就是选择自由,云南关键词排名推广报价
优化公司:助力企业腾飞的秘密武器,微信营销推广价格多少
求一个AI软件,彻底改变你的工作与生活!
OpenAI银联支付-未来支付新体验,安全便捷全新升级,医学加ai
ChatGPT桌面版无法加载?快速解决方案及常见问题解析,ai媚眼
ChatGPT4账号共享-让AI助力你的学习与工作,轻松提升效率,ai巨无霸
SEO关键词是什么意思?全面解析SEO关键字的核心作用,华为ai音箱 百度ai音箱
SEO调整,助力网站流量爆发式增长!,江都seo优化排名
为什么“搜狗不收录”会成为企业SEO的新挑战?,烤肉店的线下营销与推广
seo要学会什么,seo要学多长时间 ,NTU AI 录取
ChatGPT昨晚突然不能使用,背后真相令人意想不到!,edga ai
SEO详解:如何优化你的网站提升排名,获得更多流量,伊春湖南网站优化推广
SEO项目:如何通过精确优化提升企业网站排名与转化率,武汉做网站优化的公司
优化收费,助力企业提升效益,实现共赢,宜州餐饮网站建设
ChatGPT中文版下载,开启智能对话新体验,婚纱ai男
OpenAIGPTChatSoraOpenAIChatGPT服务在中断数小时后已恢复,ai视图线稿
ChatGPT为什么访问不了了?了解背后的原因与解决方法,AI怎么拖入路径
实用AI工具:提升效率、优化生活的科技利器
SEO优化需要花钱吗?从零起步,如何让SEO成为企业的“隐形财富”,字体如何往ai里面倒
SEO部:开启数字化营销新纪元的幕后英雄,株洲营销推广是什么公司
SEO优化关键词品牌:如何通过精准的关键词提升品牌价值,ai免费智能写作论文