为了账号安全,请及时绑定邮箱和手机立即绑定

Python入门学习系列——Python字典

标签:
Python
Python 字典

在Python中,字典是一系列键值对。每个键都与一个值相关联,可以使用键来访问与之相关联的值。与键相关联的值可以是任何值,包括数字、字符串、列表、字典等其他任何Python对象。

Python中字典的使用和Javascript中的json对象特别的类似。

字典的创建

在创建一个字典时,字典的键和值之间用冒号分割,每一组键-值对之间用逗号分割,整个键值对放在花括号的内部,形式如下:

dic={'key1':'value1','key2':'value2'}

例如:

>>> mydic={'name':'小明','age':18,'sex':'男'}

也可以直接创建一个空字典:

>>>mydic={}
访问字典中的值

要获取字典的值,需要指定字典名和放在方括号内的键,形式如下:

dic['key']

例如获取字典中的name值:

>>> mydic['name']
'小明'
为字典添加值或修改值

要为字典添加键值对或修改字典中的值,需要指定字典名、用方括号括起的键和相关联的新值。形式如下:

dic['new_key']='new_value'

例如为字典添加mail信息:

#为字典添加新值
>>> mydic['mail']='xiaoming@163.com'
>>> print(mydic)
{'name': '小明', 'age': 18, 'sex': '男', 'mail': 'xiaoming@163.com'}
#修改字典中的值
>>> mydic['name']='小华'
>>> print(mydic)
{'name': '小华', 'age': 18, 'sex': '男', 'mail': 'xiaoming@163.com'}

注意:键值对的排列顺序并不总是 与添加顺序相同。

删除字典中的值

使用del语句删除字典中的值,需要指定字典名 和要删除的键。形式如下:

del dic_name['key']

例如删除字典中的mail信息:

>>> del mydic['mail']
>>> print(mydic)
{'name': '小华', 'age': 18, 'sex': '男'}
遍历字典

遍历字典采用的是for循环语句,具体有以下几种形式。

遍历所有的键值对

需要调用字典的items()函数,该函数返回一个键值对列表,然后对该列表进行遍历,分别声明两个变量用来存储键值对中的键和值,代码如下:

>>> for k,v in mydic.items():
...     print('k:'+str(k)+'\t v:'+str(v))
... 
k:name   v:小华
k:age    v:18
k:sex    v:男
>>> 

由于遍历的过程中得到值为18,因此需要调用str()函数进行非字符串的转换。

遍历字典中的所有键

使用字典的key()函数获取所有的键组成的列表,然后遍历该列表,代码如下:

>>> for k in mydic.keys():
...     print(k)
... 
name
age
sex
>>> 

在遍历字典时,会默认遍历所有的键,因此即使不显式的调用key()函数,结果仍然不变,如下:

>>> for k in mydic:
...     print(k)
... 
name
age
sex
>>> 

如果想要按顺序遍历字典中所有的键,可以使用sorted()函数对获取的键列表进行排序后再遍历:

>>> for k in sorted(mydic):
...     print(k)
... 
age
name
sex
>>> 

遍历字典中所有值

使用values()函数获取字典的所有值组成的列表,该列表不包含任何键,然后使用for循环遍历该值列表,代码如下:

>>> for v in mydic.values():
...     print(v)
... 
小华
18
男
>>> 

如果需要对获取的值列表进行去重,可以调用set()函数,它将返回一个所有元素都不是重复的set集合。

>>> dic={'name1':'小明','name2':'小明','name3':'小华'}
>>> print(set(dic.values()))
{'小明', '小华'}
>>> for v in set(dic.values()):
...     print(v)
... 
小明
小华
>>> 
字典嵌套

字典嵌套的意思就是字典中存储列表,或列表中存储字典,或字典中存储字典。

字典列表

列表中存储一系列的字典。

>>> dic1={'name':'小明','age':18,'sex':'男'}
>>> dic2={'name':'小芳','age':15,'sex':'女'}
>>> dic3={'name':'小米','age':25,'sex':'男'}
>>> diclist=[dic1,dic2,dic3]
>>> print(diclist)
[{'name': '小明', 'age': 18, 'sex': '男'}, {'name': '小芳', 'age': 15, 'sex': '女'}, {'name': '小米', 'age': 25, 'sex': '男'}]
>>> for dic in diclist:
...     print(dic)
... 
{'name': '小明', 'age': 18, 'sex': '男'}
{'name': '小芳', 'age': 15, 'sex': '女'}
{'name': '小米', 'age': 25, 'sex': '男'}
>>> 

字典中存储列表

>>> dic= {
...     'name':'编程语言',
...     'type':['python','c#','java']
...     }
... 
>>> for t in dic['type']:
...     print(t)
... 
python
c#
java
>>> 

字典中存储字典

>>> mydic={
...     'student':{
...         'stuname':'小明','stuage':18
...         },
...     'class':{
...         'classname':'一班','teacher':'陈老师'
...         }
...     }
... 
>>> for k,v in mydic.items():
...     for lk ,lv in v.items():
...         print(lk+'\t'+str(lv))
... 
stuname 小明
stuage  18
classname   一班
teacher 陈老师
>>> 

通过以上的学习不难发现,Python字典的操作和json对象操作几乎是一模一样,如果你对json对象操作很熟悉的话,相信你会很快掌握Python字典的相关用法。

本文后续会随着知识的积累不断补充和更新,内容如有错误,欢迎指正。
最后一次更新时间:2018-07-01
参考资源:《Python入门和实践》

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消