高中生零基础学python(三)

本文是高中生学习Python的第三天笔记,重点介绍了set和dict的概念及使用。文章通过实例解释了dict的快速查找原理,以及如何避免key不存在时的错误。同时,讲述了set的特点,包括自动去重和数学运算操作。最后,讨论了Python中可变对象与不可变对象的区别。
摘要由CSDN通过智能技术生成

学习python的第三天

我又来了,今天好累,但还是得坚持学习嘛,废话不多说,Let’s get started!

今天我们要学习的是setdict,他们都是一组key的集合, 但他们有什么区别呢,接下来的学习会告诉我们!

首先我们来看dict

校长布置了个任务给我,让我将全校同学的成绩统计出来,并要求要查找方便。

如果只是几个人,我完全可以用list来完成这个任务

names = ['Mike', 'Bob', 'Alice']
scores = [95, 80, 85]

但全校的人数过于庞大,用list的话,list越长,耗时越长,查找起来速度较慢。

如果用dict实现,只需要一个“名字”-“成绩”的对照表,直接根据名字查找成绩,无论这个表有多大,查找速度都不会变慢。用Python写一个dict如下:

>>>d = {
   'Mike': 95, 'Bob': 80, 'Alice': 85}
>>>d['Mike']
95

为什么dict可以这么快?就拿查字典来举例,list就是不按拼音部首直接一个字一个字的去找,而dict是按照拼音部首对应的页码精准查询!

dict使用键-值(key-value)存储,具有极快的查找速度。

这种key-value存储方式,在放进去的时候,必须根据key算出value的存放位置,这样,取的时候才能根据key直接拿到value。

把数据放入dict的方法,除了初始化时指定外,还可以通过key放入:

>>>d['Mike'] = 90
>>>d['Mike']
90

由于一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的值冲掉:

>>>d['Jack'] = 90
>>>d['Jack']
90
>>>d['Jack'] = 88
>>>d['Jack']
88 

假设名单里没有这位同学的名字,我们用dict去查询会出现什么状况呢?

>>>d['小明']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: '小明'

为了避免这种错误,有两种解决办法:
一是通过in判断key是否存在

>>>'小明' in d
False

二是通过dict提供的get()方法,如果key不存在,可以返回None,或者自己指定的value:

>>>d.get('小明')
>>>d.get('小明', -1)
-1

如果我们不小心错误的添加了一个同学的信息,由于数量较大,不方便查找,怎么办呢?

我们可以用pop(key)来删除这个同学和他所对应的value

>>>d<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值