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执行了两个步骤:

扫描二维码关注公众号,回复: 1928975 查看本文章

(1.首先判断原来的字典中有没有这个key,如果没有,执行新增;如果有则不执行覆盖

(2.用这个key去字典中查询,返回查到的结果;

代码展示:

1 dic = {"疾风剑豪":"亚索","暴走萝莉":"拉克丝",}
2 ret = dic.setdefault("疾风剑豪","诺手")
3 print(dic)
4 print(ret)
5 #输出结果:{'疾风剑豪': '亚索', '暴走萝莉': '拉克丝'}
6 亚索
7 
8 注意:这里ret的返回值是亚索,而不是诺手!
关于setdefault

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         
字典的嵌套

猜你喜欢

转载自www.cnblogs.com/0627zhou/p/9275437.html
005