Python3数据类型—字典

avatar 2020年2月15日18:16:40 评论 1,143 次浏览

字典的特征就是"{}",类型就是dict,每一个字典中的元素都有一个key和value组成,key具有唯一性(同一个字典中),多个元素之间使用逗号隔开,字典里没有索引,记住同一字典中所有的key不能有重复的。下面创建一个字典看一下:

#!/usr/bin/python3
#coding:utf-8
#吴老二个人博客~~~www.wulaoer.org
wulaoer ={23:1,"name":"wulaoer"}

这里要注意,key或value如果是整数可以不适用双引号,字符串必须适用英文双引号。标点符号必须是英文的,切记.......

查看字典

字典也可以根据索引查看字典中的value,不过索引是根据字典中的键值对来获取的,一对键值对是一个索引,可以根据索引对字典做增删改查操作,也可以使用字典的一些内置函数,下面看一下字典的增删改查汇总:

#!/usr/bin/python3
#coding:utf-8
#吴老二个人博客~~~www.wulaoer.org
wulaoer ={23:1,"name":"wulaoer"}
wulaoer1 = {"course":"golong"}
print("根据字典的key找到value:",wulaoer.get(23))#根据key找value
print("根据字典的key找到value:",wulaoer[23])#根据key找value
print("查看字典的所有keys:",wulaoer.keys())#查看字典中的key
print("查看字典的所有value:",wulaoer.values())#查看字典中的value
print("遍历字典并返回键值对:",wulaoer.items())#遍历字典以列表方式返回(键,值)元组数组

输出结果:

根据字典的key找到value: 1
根据字典的key找到value: 1
查看字典的所有keys: dict_keys([23, 'name'])
查看字典的所有value: dict_values([1, 'wulaoer'])
遍历字典并返回键值对: dict_items([(23, 1), ('name', 'wulaoer')])

增加字典

字典增加主要有两个方面,一个是增加字典的键值对使用的是内置函数update()。一个把新字典追加到旧字典中相当于合并字典可以使用dict(wulaoer1,**wulaoer2)或者dict(wulaoer1.items()+wulaoer2.items())。还有一个就是自动生成新的字典,使用内置函数fromkeys(key,value),这里会遍历key的所有元素,一个元素相当于新建字典的k,value不变,如果不存在默认None。

#!/usr/bin/python3
#coding:utf-8
#吴老二个人博客~~~www.wulaoer.org
wulaoer ={23:1,"name":"wulaoer"}
wulaoer1 = {"course":"golong"}
wulaoer.update(wulaoer1) #追加到字典
print("使用update内置函数追加一个字典:",wulaoer)
wulaoer2=wulaoer.fromkeys("sed","shell")#创建新的字典以sed作为key,shell作为value,如果value为空,则为None
print("创建新字典以sed序列作为key,shell作为value,如value为空则为None:",wulaoer2)

输出结果:

使用update内置函数追加一个字典: {23: 1, 'name': 'wulaoer', 'course': 'golong'}
创建新字典以sed序列作为key,shell作为value,如value为空则为None: {'s': 'shell', 'e': 'shell', 'd': 'shell'}

因为还没有说运算符,这里就不举例了,后面运算符的时候单独举例说明,目前需要可以先了解这么多,学的越多你会发现方法越多。

字典的删

删除字典的元素只能成对删除,这个是字典的特性,key和value不可分割,两者必须都存在。删除字典的键值对我们可以依靠索引,也可以依靠字典的key,或者字典的内置函数pop(),del,popitem()等,每个都是删除字典键值对,但是有些不太一样,那些不一样看看例子:

#!/usr/bin/python3
#coding:utf-8
#吴老二个人博客~~~www.wulaoer.org
wulaoer ={23:1,"name":"wulaoer","course":"python","Ruby":1}
wulaoer.pop(23) #根据key删除字典中的一对键和值
print("内置函数pop()是根据key删除字典键值对",wulaoer)
wulaoer.popitem()#删除字典中最后一对键和值
print("内置函数popitem()是自动删除字典最后一对键值对",wulaoer)
del wulaoer["course"] #根据key删除字典中的一对键值
print("内置函数del,也是根据字典key删除字典键值对",wulaoer)
wulaoer.clear() #删除字典所有键值对
print("内置函数clear()是删除字典所有键值对",wulaoer)

输出结果:

内置函数pop()是根据key删除字典键值对 {'name': 'wulaoer', 'course': 'python', 'Ruby': 1}
内置函数popitem()是自动删除字典最后一对键值对 {'name': 'wulaoer', 'course': 'python'}
内置函数del,也是根据字典key删除字典键值对 {'name': 'wulaoer'}
内置函数clear()是删除字典所有键值对 {}

内置函数pop()是根据key来删除键值对,popitem()函数是删除字典的最后一个键值对,del也是根据字典的key删除键值对,clear()是删除的整个字典

字典的改

在使用字典的过程中会经常用到字典的修改,这里的修改智能修改字典的value,没有办法修改字典的key,因为key的唯一性。所以这里使用的时候就要用到字典的索引,根据字典的key给键值对重新赋值就相当于修改了字典。看一下下面的几个例子:

#!/usr/bin/python3
#coding:utf-8
#吴老二个人博客~~~www.wulaoer.org
wulaoer={"python":"wulaoer1","ruby":"wulaoer2","golong":"wulaoer3","java":"wulaoer4"}
wulaoer["python"]="运维服务"
print("利用key修改value",wulaoer)
ruby={"ruby":"日本人的东西"}
wulaoer.update(ruby)
print("利用update()函数进行覆盖",wulaoer)

输出结果

利用key修改value {'python': '运维服务', 'ruby': 'wulaoer2', 'golong': 'wulaoer3', 'java': 'wulaoer4'}
利用update()函数进行覆盖 {'python': '运维服务', 'ruby': '日本人的东西', 'golong': 'wulaoer3', 'java': 'wulaoer4'}

这里要记住字典的唯一性,所有字典的key不可有重复性

avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: