python学习-字典(哈希表、创建、插值、取值、keys、values、items、copy、fromkeys)

字典的创建

首先需要注意,字典是由键值对(key=>value)组成,成对出现的,其中key是不能改变的值,如整数,浮点数,字符串,元组等

Python的字典实现使用的是hash表,它是一个数组,他的索引是通过键的hash函数获得的。

先看看字典的定义吧

# key不能改变
dict1 = {
    3: 3,
    2: 4,
    2.1: 3,
    'sd': 2,
    4: 'ss'
}
print('dict1 = ', dict1)

运行结果:
在这里插入图片描述
使用元组作为key:

lst1 = [2, 1, 3]
tup1 = (2, 1, 3)
dict2 = {
    tup1: lst1
}
print('dict2 = ', dict2)

运行结果:
在这里插入图片描述
需要注意,如果使用list作为key,运行则会报错。

dict3 = {
    lst1: tup1
}
print('dict3 = ', dict3)

如图:
在这里插入图片描述

字典的使用

插值:

dict4 = {
    3: 3,
    2: 4,
    2.1: 3
}
print(type(dict4))
print('dict4 = ', dict4)
dict4[21] = 36
print('dict4 = ', dict4)
dict4[3] = 13
print('dict4 = ', dict4)
print(dict4[3])

运行结果:
在这里插入图片描述
如代码所示,使用[]取值,如果key存在,则修改value,如果key不存在则添加value。

如果在dict里面想要获取对应的value,最好不用如上所示的print(dict4[3])去取value,使用get方法获取。

dict4 = {
    3: 3,
    2: 4,
    2.1: 3
}
print(type(dict4))
print('dict4 = ', dict4)
dict4[21] = 36
print('dict4 = ', dict4)
dict4[3] = 13
print('dict4 = ', dict4)
print(dict4[3])
print(dict4.get(3))
print(dict4.get(13))

通过这种方式,如果key写错了,或者key不存在,都不会引起报错,只会返回一个None
在这里插入图片描述
访问字典里面所有的key,value

print(dict4.keys())
print(dict4.values())
print(dict4.items())

运行结果:
在这里插入图片描述
清空字典:
可以使用pop和clear

print('dict4 = ', dict4)
dict4.pop(3)
print('dict4 = ', dict4)
dict4.clear()
print('dict4 = ', dict4)

运行结果:
在这里插入图片描述
字典的更新:除了使用key重新赋值,还可以使用一个dict更新另一个dict

dict4 = {
    3: 3,
    2: 4,
    2.1: 3
}
dict5 = {
    1: 11,
    2: 22
}
dict5.update(dict4)
print('dict5 = ', dict5)

使用dict4来更新dict5,运行结果:
在这里插入图片描述
虽然dict5有key是2,但是使用dict4更新dict5,会把相同的key的value覆盖掉,所以留下了diect4的value
还有另一种方式也可以更新:

dict4 = {
    3: 3,
    2: 4,
    2.1: 3
}
dict5 = {
    1: 11,
    2: 22
}
dict6 = {**dict5, **dict4}
print('dict6 = ', dict6)

运行结果:
在这里插入图片描述
运行出来和使用update是相同的结果,具体原理还不清楚。

dict的copy和fromkeys
copy:返回一个字典的浅复制
fromkeys:创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值

print('dict6 = ', dict6)
dict7 = dict6.copy()
print('dict7 = ', dict7)
dict6.clear()
dict6 = dict6.fromkeys(dict7)
print('dict6 = ', dict6)

运行结果:
在这里插入图片描述
以上就是字典的主要功能,本文结束。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值