字典的使用_1
摘要:本内容为字典的使用介绍。
01.字典的使用基础介绍
1.1字典的使用的基础信息
已经初步了解了字典的相关知识,现在进一步探讨字典的各种操作。关于字典的操作,应当以官方文档为基准。官方文档是权威的参考资料,或者可以参考官方网站上的文档。由于离线文档可能出现乱码问题,也可以查阅离线文档,要确保对相关位置有充分的了解。
点击如下:
字典位置如下:
点击进入下方说明:
同样可以查看离线版:
找到如下:
新建一个文件:
1.2创建字典
(1)第一种方式:使用{ }
语法:{k1:v1,k2:v2,k3:v3} 键和值之间用冒号隔开,多项之间使用逗号隔开。
(2)第二种方式:使用Dict( )函数来创建字典
每一个参数都是一个键值对,参数名就是键,参数名就是值
(这种方式创建的字典,key都是字符串)
D=dict(name='孙悟空',age=18,gender='男') //给多个函数传参数 Print(d,type(d))
保存执行:
(3)第三种方式: 也可以将一个包含有双值子序列的序列转换为字典
l 双值序列指序列中只有两个值,比如:[1,2]、 ('a',3) 、‘ab’
l 子序列,如果序列中的元素也是序列,那么称这个元素为子序列
例如:[(1,2),(3,5)],发现列表里放了两个元组做元素,那么这两个元组就是就是这个列表的子序列。如果一个元组中都是双值子序列,就可以把这个列表转换为字典。
D=Dict([('Name','孙悟饭'),('Age',18)]) //现在就是一个列表,这个列表里还是序列,还是双值子序列,那么就可以转换为一个字典。
为什么采用双值子序列,双值一个值作为 Key,一个值作为 Value ,此处 Name 作为 Key,值作为 Value,Age 作为 Key,18 作为Value。
print(d ,type(d))
执行:
通过 Dict 将包含双值子序列的序列转换为列表,此方法会用到,多采用特殊情况,一般情况下使用较少。
(4)第四种方式:Len()获取字典中键值对的个数,就是查看字典中有几个键值对,与序列一致。
Print(len(d))
输出执行:
下移:
D=dict(name='孙悟空',age=18,gender='男')
保存执行:变成3个
(5)第五种方式:
l In检查字典中是否包含指定的键
l Not in检查字典中是否不包含指定的键
Print('name'in d) 检查D中是否有 Name 的键
保存执行:
Print('hello'in d) 检查D当中是否有 Hello 键
保存执行:
In检查字典中是否包含指定的键,不是检查值的,Not in不在演示。
(6)第六种方式:获取字典中的值,根据键来获取值
#语法:d[key]
Print(d['name']) Name必须加上字符串,引号,因为键有引号。
保存执行:
若不加引号:
Print(d[age])
保存执行:
无加引号作为变量去处理,所以一定要加引号,因为 Key 本身加引号。
若为Age=18这种形式创建会自动加入变成字符串,保存执行:
某些情况下不能加引号则不加,
N='name print(d[n])
N为变量实际值为Name
保存执行:
此处加上引号就不为变量。
执行结果:
若为变量不加引号,字符串需要添加引号。其他Number就写Number,布尔值就写布尔值,None就写None。但是一般为字符串。
(7)第七种方式:通过[ ]来获取值时,如果键不存在,会抛出异常KeyError。
使用时小心,明确在字典中包含Key,若没有则不使用。不确定可使用In检查,若返回True则使用,若不是则不用。
(8)第八种方式 此处有其他方式:
Get(key[,default])
#Get(key[,default]) 该方法用来根据键来获取字典中的值
Print(d.get(’name'))
保存执行:
(d.get(’name'))与(d[age])方法基本一致
print(d.get('hello'))
此处无Hello键。
保存执行:
若中括号没有则会报错,此处不会。
#如果获取的键在字典中不存在,会返回None,不会报错。
Get有可选择的参数Defauit
Print(d.get('name','默认值'))
保存执行:
Print(d.get('hello','默认值'))
保存执行:
如果Hello不存在则会返回默认值。
#也可以指定一个默认值,来作为第二个参数,这样获取不到值时将会返回默认值
Get比中括号更安全,不会出现异常。
1.3修改字典
(1)第一种方式 Name=孙悟空进行修改
#D[key]=Value #如果key存在则覆盖,不存在则添加 D['name']=’sunwukong' #修改字典的Key-value Print(d)
保存执行:
D['address']=’花果山' #向字典中添加Key-value
保存执行:
(2)第二种方式 另一种修改方式:
#Setdefault(key[,default])可以用来向字典中添加Key-value
上述文档有很详细的描述,如果Key在字典中,会返回值,如果不在插入Key根据默认值返回默认值。
D.setdefault('name','猪八戒') Print(d)
保存执行:
#如果Key已经存在于字典中,则返回Key的值,不会对字典做任何操作。
#如果Key不存在,则向字典中添加这个Key,并设置Value
设置Name的Key,若存在会有返回值。
Result=d.setdefault('name','猪八戒') Result是Key的值 Print('result =',result)
Name已经存在,后面值无意义,直接返回:
Result=d.setdefault('hello','猪八戒')
Hello值本身不存在,保存执行:
Setdefault是灵活的方法,最终:有就返回,没有就添加。
(3)第三种方法:
#update([other]) 属于添加的方法 #将其他的字典中的Key-value添加到当前字典中 D={'a':1,b':2,'c':3} D2={'d":4,'e':5,'f':6} D.update(d2) Print(d)
保存执行:
上图包含六个键,因为两个字典合并在D中,D2合并在D中。对D2进行更新。
若如下情况:
D={'a':1,b':2,'c':3} D2={'d":4,'e':5,'f':6,’a’:7}
两个键有冲突:
保存执行:
D中的A被D2中的所替换。
#如果有重复的Key,则后边的会替换到当前的,新A会替换旧A。
第一种创建字典三方式:
Len()获取字典中键值对的个数、In字典中包含或者不包含某个键
l 通过Key或者Get来获取值
l 通过Key来修改,没有就添加
l 通过Setdefault进行修改
update可以将其他的字典中的Key-value添加到当前字典中,若重复会被当前的所替代。