2024年最新4面阿里拿到P7Offer,python的封装与结构 - set集合_python自定结构放到set的要求,大厂面试算法题总结

收集整理了一份《2024年最新Python全套学习资料》免费送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img



既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Python知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来

如果你需要这些资料,可以添加V无偿获取:hxbc188 (备注666)
img

正文

2.2 set的基本操作

set是可变的类型,那就意味着,我们可以对set进行增加、删除、修改等操作。

2.2.1 增加元素

set提供了两种定义一个集合的方式,add 和 update,他们的用法如下:

2.2.2 删除元素

set提供了多种定义一个集合的方式,比如 remove ,pop,他们的用法如下:

2.2.3 修改元素

上来我们需要先想一个问题,为什么要修改set呢?修改的本质是什么?

修改的本质其实就是找到这个元素,删除,然后在加入新的元素

由于集合是非线性结构,所以无法被索引

但是set是容器,可以被迭代

所以set不能像list那样,通过索引修改元素,因为它无序的特性,修改其实等同于删除、再添加而已。

2.2.4 成员判断

我们说既然set是容器,那么我们就可以对容器内的元素进行判断,那么就需要使用成员判断符 in 和 not in 了。

in: x in s, 判断元素x是否是在集合s中,返回bool类型

not in : x not in s, 判断元素x不在集合s中,返回bool类型

我们知道在list,str这种线性结构中进行成员判断时,它的时间复杂度是O(n)的,因为需要遍历,但是在set中就很简单了,它只需要把要判断的元素进行hash,找到set中对应的门牌号,把里面的数据拽出来,看看是不是相同。 这种操作通常都是O(1)的,所以在set中,成员判断效率很高,当然在dict类型中,也是如此。

2.3 set小结

线性结构的查询时间复杂度是O(n),即随着数据规模的这不过大而增加耗时,set、dict等结构,内部使用的是hash值作为key,时间复杂度可以做到O(1)查询时间和数据规模无关,在python中可hash对象有(都属于不可变类型)

数值类型int、float、complex

布尔值True、False

字符串String、Bytes

元组tuple

None

3 集合

简单来说,所谓的一个集合,就是将数个对象归类而分成为一个或数个形态各异的大小整体。 一般来讲,集合是具有某种特性的事物的整体,或是一些确认对象的汇集。构成集合的事物或对象称作元素或是成员。集合的元素可以是任何事物,可以是人,可以是物,也可以是字母或数字等。 (此解释来自于维基百科)

全集:所有元素的结合。例如实数集,所有实数组成的集合就是实数集

子集subset和超集superset: 一个集合A所有的元素都在另一个集合B内,A是B的子集,B是A的超集

真子集和真超集:A是B的子集,且A不等于B,A就是B的真子集,B就是A的真超集

并集:多个集合合并的结果

交集:多个集合的公共部分

差集:集合中除去和其他集合共有的部分

这些是小学数学基础概念哦,兄弟们。

3.1 集合运算

通过集合运算,我们可以方便的对求出集合的差集、并集等,Python的集合除了提供了大量的集合运算方法还提供了不少的特殊符号用来表示集合运算。

3.2 并集

将集合A和集合B所有元素合并在一起,组成的集合称为集合A和集合B的并集

3.3 交集

集合A和集合B,由所有属于A且属于B的元素组成的集合。

3.3 差集

集合A和B,由所有属于A且不属于B的元素组成的集合。

3.4 对称差集

不属于集合A和集合B交集的其他元素组成的集合,数学表达式为:(A-B) U (B-A)。

最后

Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

👉Python所有方向的学习路线👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

👉Python必备开发工具👈

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

👉Python全套学习视频👈

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

👉实战案例👈

学python就与学数学一样,是不能只看书不做题的,直接看步骤和答案会让人误以为自己全都掌握了,但是碰到生题的时候还是会一筹莫展。

因此在学习python的过程中一定要记得多动手写代码,教程只需要看一两遍即可。

👉大厂面试真题👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

如果你需要这些资料,可以添加V无偿获取:hxbc188 (备注666)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
//img-blog.csdnimg.cn/img_convert/99461e47e58e503d2bc1dc6f4668534a.png)

如果你需要这些资料,可以添加V无偿获取:hxbc188 (备注666)
[外链图片转存中…(img-Za7Iown8-1713819834218)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值