【Python深入学习】- 书籍推荐|数据结构和算法介绍|内建集合数据类型

简介: 【Python深入学习】- 书籍推荐|数据结构和算法介绍|内建集合数据类型

🌈个人主页: Aileen_0v0

🔥系列专栏:PYTHON学习系列专栏

💫"没有罗马,那就自己创造罗马~"

若把编写代码比作行军打仗,那么要想称霸沙场,不能仅靠手中的利刃,还需深谙兵法。Python是一把利刃,数据结构与算法则是兵法。只有熟读兵法,才能使利刃所向披靡,今天我想跟大家分享我的读书心得---<<Python数据结构与算法分析>>

为什么选择这本书

1.原因

学校没有教材,当时觉得单纯听课和看视频特别吃力,作为一名热爱学习,追求真理的大学生,在老师和朋友的推荐下,选择了这本书.

正如书中所言:"只有洞彻数据结构与算法,才能真正精通Python".作为一名精益求精的博主,我通过阅读前部分的内容发现这本书,特别适合小白以及大神进行学习和复盘,内容精炼简洁,非常容易理解.我想正是因为这本书妙不可言,所以它才会被华盛顿大学、北京大学等多家高校采用.

2.想法

从今天起,为了回馈粉丝对我的支持,我将会把这本书的所有内容吃透并且内化,与大家进行每日的阅读和学习分享

什么是算法

1.算法概念

计算机科学的研究对象是问题、解决问题的过程,以及通过该过程得到的解决方案。给定一

个问题,计算机科学家的目标是开发一个能够逐步解决该问题的算法。算法是具有有限步骤的过程,依照这个过程便能解决问题。因此,算法就是解决方案。

为何学习数据结构及抽象数据类型

1.过程抽象和数据抽象区别

过程抽象将功能的实现细节隐藏起来,从而使用户能从更高的视角来看待功能。

数据抽象的基本思想与此类似。

抽象数据类型(有时简称为ADT)从逻辑上描述了如何看待数据及其对应运算而无须考虑具体实现。这意味着我们仅需要关心数据代表了什么,而可以忽略它们的构建方式。

通过这样的抽象,我们对数据进行了一层封装,其基本思想是封装具体的实现细节,使它们对用户不可见,这被称为信息隐藏。

2.抽象数据类型原理

下图展示了抽象数据类型及其原理。用户通过利用抽象数据类型提供的操作来与接口交互。

抽象数据类型是与用户交互的外壳。真正的实现则隐藏在内部。用户并不需要关心各种实现细节。

抽象数据类型的实现常被称为数据结构

PYTHON基础

1.通过类去学习抽象数据类型的原因

Python支持面向对象编程范式。这意味着Python认为数据是问题解决过程中的关键点。在Python以及其他所有面向对象编程语言中,都是对数据的构成(状态)以及数据能做什么(行为)的描述。由于类的使用者只能看到数据项的状态和行为,因此类与抽象数据类型是相似的。在面向对象编程范式中,数据项被称作对象。一个对象就是类的一个实例。

2.复习python基础知识点

运算符//。注意,当两个整数相除时,其结果是一个浮点数,而整除运算符截去小数部分,只返回商的整数部分。

a = 10
b = 3
c = a // b
print(c)  # 输出结果为3

Python通过bool类实现对表达真值非常有用的布尔数据类型。布尔对象可能的状态值是

True或者False布尔运算符有and、or以及not。

当一个名字第一次出现在赋值语句的左边部分时,会创建对应的Python变量。赋值语句将

名字与值关联起来。变量存的是指向数据的引用,而不是数据本身。来看看下面的代码。

theSum = 0
# 0
theSum = theSum + 1
print(theSum)
# 1
theSum = True
print(theSum )
# True

赋值语句theSum = 0创建变量theSum,并且令其保存指向数据对象0的引用(如图下图所示)。Python会先计算赋值运算符右边的表达式,然后将指向该结果数据对象的引用赋给左边的变量名。

赋值语句改变了变量的引用,这体现了Python的动态特性。

变量指向数据对象的引用

赋值语句改变变量的引用

内建集合数据类型

1.下期预告

除了数值类和布尔类,Python还有众多强大的內建集合类列表、字符串以及元组是概念上

非常相似的有序集合,但是只有理解它们的差别,才能正确运用。集(set)和字典无序集合。

总结

今天,我们了解了关于算法和抽象数据结构的概念,以及关于python的一些基础知识点,后面我会继续续写我和这本书的故事,希望大家多多支持,你的鼓励是我继续不断前行的动力!

目录
相关文章
|
机器学习/深度学习 算法 数据挖掘
没发论文的注意啦!重磅更新!GWO-BP-AdaBoost预测!灰狼优化、人工神经网络与AdaBoost集成学习算法预测研究(Matlab代码实现)
没发论文的注意啦!重磅更新!GWO-BP-AdaBoost预测!灰狼优化、人工神经网络与AdaBoost集成学习算法预测研究(Matlab代码实现)
369 0
|
12月前
|
机器学习/深度学习 运维 算法
【微电网多目标优化调度】多目标学习者行为优化算法MOLPB求解微电网多目标优化调度研究(Matlab代码实现)
【微电网多目标优化调度】多目标学习者行为优化算法MOLPB求解微电网多目标优化调度研究(Matlab代码实现)
427 1
|
算法 数据可视化 开发者
为什么要学习数据结构与算法
今天,我向大家介绍一门非常重要的课程——《数据结构与算法》。这门课不仅是计算机学科的核心,更是每一位开发者从“小白”迈向“高手”的必经之路。
为什么要学习数据结构与算法
|
存储 安全 Java
Java 集合面试题从数据结构到 HashMap 源码剖析详解及长尾考点梳理
本文深入解析Java集合框架,涵盖基础概念、常见集合类型及HashMap的底层数据结构与源码实现。从Collection、Map到Iterator接口,逐一剖析其特性与应用场景。重点解读HashMap在JDK1.7与1.8中的数据结构演变,包括数组+链表+红黑树优化,以及put方法和扩容机制的实现细节。结合订单管理与用户权限管理等实际案例,展示集合框架的应用价值,助你全面掌握相关知识,轻松应对面试与开发需求。
692 3
|
负载均衡 算法
架构学习:7种负载均衡算法策略
四层负载均衡包括数据链路层、网络层和应用层负载均衡。数据链路层通过修改MAC地址转发帧;网络层通过改变IP地址实现数据包转发;应用层有多种策略,如轮循、权重轮循、随机、权重随机、一致性哈希、响应速度和最少连接数均衡,确保请求合理分配到服务器,提升性能与稳定性。
3200 11
架构学习:7种负载均衡算法策略
|
存储 人工智能 索引
Python数据结构:列表、元组、字典、集合
Python 中的列表、元组、字典和集合是常用数据结构。列表(List)是有序可变集合,支持增删改查操作;元组(Tuple)与列表类似但不可变,适合存储固定数据;字典(Dictionary)以键值对形式存储,无序可变,便于快速查找和修改;集合(Set)为无序不重复集合,支持高效集合运算如并集、交集等。根据需求选择合适的数据结构,可提升代码效率与可读性。
1270 1
|
存储 算法 测试技术
【C++数据结构——线性表】求集合的并、交和差运算(头歌实践教学平台习题)【合集】
本任务要求编写程序求两个集合的并集、交集和差集。主要内容包括: 1. **单链表表示集合**:使用单链表存储集合元素,确保元素唯一且无序。 2. **求并集**:遍历两个集合,将所有不同元素加入新链表。 3. **求交集**:遍历集合A,检查元素是否在集合B中存在,若存在则加入结果链表。 4. **求差集**:遍历集合A,检查元素是否不在集合B中,若满足条件则加入结果链表。 通过C++代码实现上述操作,并提供测试用例验证结果。测试输入为两个集合的元素,输出为有序集合A、B,以及它们的并集、交集和差集。 示例测试输入: ``` a c e f a b d e h i ``` 预期输出:
622 7
|
存储 缓存 安全
Java 集合江湖:底层数据结构的大揭秘!
小米是一位热爱技术分享的程序员,本文详细解析了Java面试中常见的List、Set、Map的区别。不仅介绍了它们的基本特性和实现类,还深入探讨了各自的使用场景和面试技巧,帮助读者更好地理解和应对相关问题。
392 5
|
机器学习/深度学习 人工智能 自然语言处理
【EMNLP2024】基于多轮课程学习的大语言模型蒸馏算法 TAPIR
阿里云人工智能平台 PAI 与复旦大学王鹏教授团队合作,在自然语言处理顶级会议 EMNLP 2024 上发表论文《Distilling Instruction-following Abilities of Large Language Models with Task-aware Curriculum Planning》。

推荐镜像

更多