Python_005
Posted pythonZhou
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python_005相关的知识,希望对你有一定的参考价值。
一.字典(dict)
1.字典的定义格式:dic{key1:value1,key2,value2}
:这里面key是唯一的,保存的时候,根据key计算一个内存地址,然后将key-value保存在这个地址中,这种算法叫做hahs算法,
这个key意味是不可变的,为了能够准确找到计算内存地址而规定的;value没有要求,可以保存任意类型的数据;
:dict保存的数据不是按照我们添加进去的顺序保存的,是按照hash表的顺序保存的,而hash表不是连续的,所以不能进行切片,只能通过key来获取dict中的数据;
二.字典的增删改查
1.增加
a.添加格式:dic[key] = 元素
:直接添加,如果dic中没有出现这个key,就会新增一个key-value的组合进dic中
:如果dic中已经有了这个key,就会直接覆盖上一个key对应的value的值!
b.第二种添加的格式:dic.setdefault(key):若没有出现过key值,默认会自动创建一个key:None;
:如果已经出现key值,那么setdefault将不起作用;
:setdefault执行了两个步骤:
(1.首先判断原来的字典中有没有这个key,如果没有,执行新增;如果有则不执行覆盖
(2.用这个key去字典中查询,返回查到的结果;
代码展示:
1 dic = {"疾风剑豪":"亚索","暴走萝莉":"拉克丝",} 2 ret = dic.setdefault("疾风剑豪","诺手") 3 print(dic) 4 print(ret) 5 #输出结果:{‘疾风剑豪‘: ‘亚索‘, ‘暴走萝莉‘: ‘拉克丝‘} 6 亚索 7 8 注意:这里ret的返回值是亚索,而不是诺手!
2.删除
a:ret = dic.pop(指定key值)指定key值删除,有返回值;
b:del dic[key值]这个没有返回值;
3.修改
newdic.update(dic):把newdic中的内容更新到dic中,如果key重名,则修改替换,如果不存在key,则新增;
4.查
print(dic.get("key"):可以通过key来获取value值,如果key不存在,返回None
print(di.get("key","value")):也可以添加一个value值;
三.字典的相关操作
1.dic.keys()可以拿到所有的key,返回key的集合,像是列表,但不是列表;
:可以进行迭代循环:for key in dic.keys():print(key)打印所有的key值
:for value in dic.values():print(value)打印所有的value值
:for item in dic.items():print(item)打印所有的元素,以元组的形式出现;
2.解构:把一个元组里面的元素赋值给前面的变量,这种方法叫做解构;
例如:a,b = 1,2 print(a) a为1 若a = 1,2 print(a) a为(1,2)
推导公式:for k,v in dic.items():print(k,v):就会拿到字典的key和value值;
3.字典的嵌套
代码展示:
1 dic = { 2 "name" : "国际章", 3 "工资" : 18000, 4 "age" : 18, 5 "human" : { 6 "name1" : "汪峰", 7 "工资1" : 10, 8 "age" : 356 9 }, 10 "son" : [ 11 {"name3" : "王贤柏", "age" : 19}, 12 {"name4" : "吴祖蓝", "age" : 119} 13 ] 14 } 15 print(dic["human"]["工资1"]) 16 print(dic["son"][0]["name3"]) 17 #输出结果:10 18 王贤柏 19
以上是关于Python_005的主要内容,如果未能解决你的问题,请参考以下文章