python中字典的创建

1.字典的概念

字典是一种存储键值对的结构。

在python中能够根据键(key)来快速找到值(value)

根据key能够快速的找到value(一对一的映射关系)

在python的字典中,可以同时包含很多个键值对,同时要求这些键,不能重复。

2.创建字典

如上图所示,是a = {} 或者b = dict()这两种方式都可以去创建字典。

如上图所示,不是所有的数据类型都可以作为key,但是对于作为value的数据类型确实没有约束的。

使用英文逗号来分隔每一组的键值对,

在key的后面要用英文冒号来分隔value

英文逗号来分隔不同键值对,

冒号来分隔键和值,

3.在字典中查找key

1.使用in来判断key是否在字典中存在,并且返回布尔值。

因为in只是判断key是否在字典中存在,而和value无关,所以即使in所查找的值在字典中的value中存在,也只会返回False。

如上图所示,可以使用in来判断所查找内容在字典的key中是否存在,可以使用not in来判断key在字典中是否不存在。

2.可以使用[ ] 来根据key 获取到value

如上图所示,print(a[key])

这样的方式就可以获取到元组a中key所对应的value值。

如上图所示,KeyError表示当前查找的key在字典中是不存在的,

对于字典来说,使用in或者[ ]来获取value,都是非常高效的操作!

对于列表来说,使用in比较低效的,而使用[ ] 是比较高效的~

对于字典来说[key ]来获取value,使用了特殊的数据结构:哈希表

对于列表来说,使用[ ] 来获取元素类似于使用了类似于数组/顺序表取下标

对于列表来说,使用in比较低效的,因为需要把整个列表遍历一遍,

4.关于字典中的新增元素和修改元素操作

1.在字典中新增元素,使用[ ]来进行。

如上图所示,print(a['calssId']),当进行对字典的一个读取操作时,如果字典中没有相应的key,就会返回keyerror的操作,

如上图所示,a['score'] = 90 ,这个操作是对字典a中,添加一个key=score,value=90

2.在字典中根据已经存在的key修改value,

如果在字典a中根据已经存在key了,那么a[ 已经存在的key] = 新的value

这样的操作就是在修改已经存在的key的value值。

如果key不存在,往里写入,相当于新增键值对,

如果key不存在,往里写入,则相当于根据key修改value。

这里就和前面说的变量创建,是类似的~

a= 10#a当前不存在,这就是定义变量(创建新变量)

a = 20#a当前已经存在了,这里就是修改变量~

4.在python中删除一个键值对

字典的各种操作,就是针对key来进行的!

新增,删除,获取value,修改value

使用pop方法,根据key来删除键值对~

即字典名称.pop(key名称)

5. 理解字典操作的效率

这里常数级的意思是无论字典中有多少元素~

新增,修改,查找,删除,操作都是固定时间,不会因为元素多了,操作就慢了,

字典中的key要求不能重复。

6.字典的遍历

直接使用for循环来遍历字典

如上图所示,可以使用for循环来遍历字典,for key in 字典名称:print (key,a[key]) 

来实现key和value的配对输出

keys()获取到字典中的所有key

values()获取到字典中的所有values

items()获取到字典中的所有键值对。

print(a.keys())

如上图所示,是利用for key,value in a.items():

                                    print(key,value)

7.可哈希的类型

在python语言中列表和字典是不可哈希的,所以就不能作为字典的key

而元组等数据类型是可以哈希的,所以就能作为字典的key

一般认为在python中可变的对象,一般是不可以哈希的,而不可变的对象,一般是可哈希的。

而且在python中专门提供了一个函数hash,来计算一个数据的哈希值。

字典,列表,元组python语言中非常常用的内置类型!相比于int,str,float

他们内部可以再包含其他元素了,这就相当于容器类/集合类结构。

  • 7
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值