为了账号安全,请及时绑定邮箱和手机立即绑定

【学习打卡】第7天 Python的Dict容器

课程名称:Python3 入门教程(新版)

课程章节: Python的Dict容器

主讲老师:咚咚呛

课程内容

  • 什么是 dict
  • dict容器的读增删
  • dict容器的其他方法

课程收获

Dict 的定义

我们使用花括号{}表示这是一个dict,然后key和value之间使用冒号:分割,并且每一组key:value的最后,以逗号,表示这一组的结束。

d = {
    'Alice': 45,
    'Bob': 60,
    'Candy': 75,
    'David': 86,
    'Ellena': 49
}
print(d)
Dict的读取

直接使用 key,访问对应的 value 的时候,当 key 不存在的时候,就会报错。因此,推荐使用 get() 方法进行访问。当访问的 key 不存在的时候,返回 None

d = {
	'Alice':86,
	'Tom':99,
	'David':80
}

print(d['Tom'])

print(d.get('Sean'))
添加 Dict 元素
d = {
	'Alice':86,
	'Tom':99,
	'David':80
}

d['Alin'] = 96

print(d)

更新 dict 元素

赋值语句其实有两个功能:

  • 当key不存在时,往dict中添加对应的key: value元素。
  • 当key存在时,会更新dict,用新的value替换原来的value。

因此,在使用赋值语句往dict中添加元素时,为了避免不必要的覆盖问题,我们需要先判断key是否存在,然后再做更新。

d = {
    'Alice': 45,
    'Bob': 60,
    'Candy': 75,
    'David': 86,
    'Ellena': 49
}

score = d.get('Alice')
d['Alice'] = 60
print(d)
删除 dict 元素

dict提供便捷的pop()方法,允许我们快速删除元素,pop()方法需要指定需要删除的元素的key,并返回对应的value

d = {
    'Alice': 45,
    'Bob': 60,
    'Candy': 75,
    'David': 86,
    'Ellena': 49
}
name = 'Alice'
if name in d.keys():
    d.pop(name)
else:
    print('{} not in d'.format(name))

print(d)
dict 的特点
  • 查找速度块

dict的第一个特点是查找速度快,无论dict有10个元素还是10万个元素,查找速度都一样。而list的查找速度随着元素增加而逐渐下降。
不过dict的查找速度快不是没有代价的,dict的缺点是占用内存大,还会浪费很多内容,list正好相反,占用内存小,但是查找速度慢。

  • 有序与无序

在Python3.5之前,dict中的元素是无序的,也就是dict中元素的插入顺序和打印顺序未必一致。我们可以认为在Python3.6的版本以后,dict是有序的,但是一般而言,为了避免不必要的误解,一般在需要有序的dict时,我们会使用一种叫做Ordereddict的字典,来确保有序。

  • key 不可变

对于基础数据类型,字符串、数字等,这些都是不可变的,可以作为dict的key,而对于复杂数据类型,经过前面的学习,我们知道tuple是不可变的,list是可变的,因此tuple可以作为dict的key,但是list不可以作为dict的key,否则将会报错。

  • 遍历dict

    遍历dict有两种方法, 第一种是遍历dict的所有key,并通过key获得对应的value。第二种方法是通过dict提供的items()方法,items()方法会返回dict中所有的元素,每个元素包含key和value。

    d = {
    	'Alice': 45,
    	'Bob': 60,
    	'Candy': 75,
    	'David': 86,
    	'Ellena': 49
    }
    
    for key, value in d.items():
    	if value > 60:
    		print(key, value)
    
dict 的其他操作方法
  • 获取dict的所有key

    d = {'Alice': [50, 61, 66], 'Bob': [80, 61, 66], 'Candy': [88, 75, 90]}
    for key in d.keys():
    	print(key)
    
  • 获取dict的所有value

    d = {'Alice': [50, 61, 66], 'Bob': [80, 61, 66], 'Candy': [88, 75, 90]}
    for key in d.values():
    	print(key)
    
  • 清除所有元素

    d = {'Alice': [50, 61, 66], 'Bob': [80, 61, 66], 'Candy': [88, 75, 90]}
    d.clear()
    

学习截图

vtfRPI.md.png

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消