之前的学习笔记中,对列表的进行了介绍,之后对列表介绍的博客看了一下,感觉不是很好懂,所以,这一次用尽量简洁的语言将字典与列表进行对比,方便大家对两种数据的理解。
与列表相比,字典最大的优势在于查找关键数据时,可以不用遍历,可以像查字典一样,按照特征去查找,就比如说查任何一个字,都可以先找偏旁部首,之后再找字的笔画,确定在字典的第几页,这也就是字典与列表最大的不同。
字典与列表的不同
所以字典主要有以下几个不同的地方:
(1)序列上
列表是有序的,按照先来后到的顺序,列表内的值是有序排列的;
字典内数据的值是无序的,没有先来后到这一说,你怎么来都行。
(2)数值对应上
列表是单身狗,数值只是自己;
字典则是恩爱的二人时间,由前面的键(Key)和后面的值(Value)共同构成,索引的时候,可以通过键找到值,不能将二人分割开。(单身狗狂哭)
(3)表示方式上
列表既然在(2)内被称为单身狗,就要对得起单身狗的称呼,所以列表的标识是方括号,是个直的。
lst=[100,200,300,400]
但是,字典他不是单身狗,情侣间表达爱意的一种方式就是送花呀,所以,字典的括号是个方括号。
dic={'姓名':'Jack','身高':185,'体重':75,'Age':28}
字典的创建
既然介绍了两者的区别,现在介绍字典的创建方式,字典的创建方式主要有两种,一种是花括号的方式直接创建(自由恋爱,送花的时候大概率就是确定关系啦),另一种则是利用内置函数创建(有点像大型相亲现场,通过指定赋值的方式实现字典的创建),代码如下:
dic={'姓名':'Jack','身高':185,'体重':75,'Age':28}
dic1=dict(姓名='Jack',身高=185,体重=75,Age=28)#中间赋值的时候要用等号,像不像在等另一半时候的我们
print(dic)
print(dic1)
字典元素的获取
好了,现在大家已经找到了各种另一半,大家也聚在了一起,这个时候,需要找出一对情侣时,你可以不用找到两个人,只需要找到他们中的一个就可以,所以这里我们介绍字典获取值得方式,也是有两种,一种是利用方括号的形式,另一种则是利用 .get()的方式:
dic={'姓名':'Jack','身高':185,'体重':75,'Age':28}
dic1=dict(姓名='Lucy',身高=165,体重=55,Age=24)
print(dic['姓名'])
print(dic1.get('姓名'))
输出结果为:
但是这两种方式在面对键值不存在的时候,反应却不一样,就像两个人群,一个你不熟悉,你大喊一声,没人反应,只能从大家的默认看出是没有这个值得,这个就是方括号的方式:
dic={'姓名':'Jack','身高':185,'体重':75,'Age':28}
print(dic['房产'])
输出结果为:
但是当你和大家熟悉,你找人的时候,他们就会给你回应,如果拟规定了大家的习惯,甚至他们还能给你比个心,这个就是get的方式:
dic1=dict(姓名='Lucy',身高=165,体重=55,Age=24)
print(dic1.get('房产'))
print(dic1.get('房产',99))
输出结果为:
这里面的99就是你告诉人群,你找的人不在时,他们需要对你的反应。
此时如果你想清点在场的所有人,你就需要对字典中的元素进行遍历,但是遍历的内容却只是字典中的Key,要想输出值就需要以上两种方式:
dic={'姓名':'Jack','身高':185,'体重':75,'Age':28}
for i in dic:
print(i,dic[i])
print(i,dic.get(i))
输出结果为:
字典元素删改
先说说查字典,这个简单,只需要in 和 not in 就可以判断key是否在你所搜索的字典中了:
dic={'姓名':'Jack','身高':185,'体重':75,'Age':28}
print('房产' in dic)
输出结果为:
之后就是字典中元素删除啦,比如说情侣游戏中,你淘汰了一个人,就是淘汰了一对人,所以在字典中也是如此,如果删除一个Key就是剔除了Key和其所对应的Value,这里用到的函数就del函数:
dic={'姓名':'Jack','身高':185,'体重':75,'Age':28}
del dic['Age']
print(dic)
输出结果为:
而另外一个函数clear的方式,更像是游戏结束后的清场,一对情侣也不留下:
dic={'姓名':'Jack','身高':185,'体重':75,'Age':28}
dic.clear()
print(dic)
输出结果为:
字典的生成式
对于有着相同名称,却有不同条件的东西,我们就需要一个固定的模式去生成他,就像人有很多很多,但是个人的特征却有不同,我们这个时候就可以用字典的生成式去生成字典,也是多个列表向字典转化的一种方式,此时用到的就是内置函数zip():
shuxing=['姓名','身高','体重','年龄']
Pi=['Jack',185,75,28]
Pj=['Lucy',165,55,24]
jack={i:j for i,j in zip(shuxing,Pi)}
lucy={i:j for i,j in zip(shuxing,Pj)}
print(jack)
print(lucy)
输出结果为: