Menu
CoddyTech
学习路径

Python 数据结构与算法

用 Python 学这条路径最完整:除了只有 C++ 版本的位运算(列在步骤之后),每门课程都用 Python 讲授。你会亲手实现栈、哈希表、堆和 AVL 树,让 list、dict、deque 和 heapq 不再神秘,然后在自动评分的面试题上证明自己。全部免费,在浏览器中学习,大多数课程都有证书。

404 节课284 个挑战702 道测验题

Python 数据结构与算法,循序渐进

40 门课程404 节课284 个挑战702 道测验题

每一步都由 Coddy 现有的几门课程组成,每个“开始”按钮都会以 Python 打开课程。唯一没有 Python 版本的课程是位运算,列在步骤之后。

  1. 1
    开始这一步开始栈、队列、二叉树、哈希表和链表,每种都先用 Python 从零实现,再用来解决问题。学完后,你会知道 list、deque 和 dict 替你做了什么,以及它们的开销。开始
  2. 2
    开始这一步开始双向链表、堆和优先队列、字典树、图,以及自平衡的 AVL 树。学完后,heapq 是你亲手写过的二叉堆,而 Python 从未提供的平衡树,你也能自己写出来。开始
  3. 3
    开始这一步开始冒泡、选择、插入、归并、快速、堆、计数和基数排序,用 Python 编写,并在可视化工具中观察运行过程。Python 自带的 sorted() 使用 Timsort,一种归并排序和插入排序的混合算法;学完这一步,你就能说出这为什么是个好主意。开始
  4. 4
  5. 5
    开始这一步开始用 Python 实现广度优先搜索和深度优先搜索、Dijkstra、Bellman-Ford、拓扑排序、Kruskal 和 Prim,基于你在第二步构建的图。Dijkstra 的优先队列就是 heapq:也就是第二步的堆,只不过是库的形式。开始
  6. 6
你将获得
学编程所需的一切

在实践中学习

编写真实代码、查询数据库、搭建网站、掌握 AI 提示词。我们的互动课程涵盖现代开发者需要的每一项技能。

playground.js
代码编辑器
1const greeting = "Hello, Coddy!"
2function sayHi(name) {
3    return greeting + " " + name
4}
5
bottombar Collapse icon
测试 #1test Case Success icon
测试 #2test Case Success icon
测试 #3test Case Failure icon
输入
"Alex"
输出
"Hello, Coddy! Alex"

打造你的连胜

坚持下去,看着自己不断进步!记录每天的编程习惯,用冻结天数保护连胜,每天打卡都能赢取奖励。

12 天连胜

明天再来,保持你的连胜!

fire Filled icon
left icon

January 2026

right icon

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

21

22

23

24

25

26

27

28

29

30

product Double Or Nothing icon

加倍或归零

第 5 天,共 7 天

fire Freeze icon

连胜冻结

2 left

随时随地写代码

随时随地继续你的编程学习旅程!无需配置,无需下载:打开就能写代码。支持 iOS、Android 和 Web,评分高达 4.9 星。

Python
7连胜
250分数
5能量
变量
journey Hex Done Base iconjourney Hex Done Shadow iconjourney Hex Done Top iconjourney Lesson Done icon
journey Path Right Done icon
journey Hex Done Base iconjourney Hex Done Shadow iconjourney Hex Done Top iconjourney Lesson Done icon
journey Path Left Done icon
journey Hex Active Base iconjourney Hex Active Shadow iconjourney Hex Active Top iconjourney Lesson Theory Challenge icon
继续
journey Path Right icon
journey Hex Locked Base iconjourney Hex Locked Shadow iconjourney Hex Locked Top iconjourney Lesson Theory Challenge icon
journey Path Left icon
journey Hex Locked Base iconjourney Hex Locked Shadow iconjourney Hex Locked Top iconjourney Lesson All icon
学习旅程
目标
排行榜
个人主页
4.9
星星星星星
评分

你并不孤单

在全球排行榜上一较高下,邀请好友赢取奖励,为彼此的成就喝彩。和好友一起编程更有趣!

挑战者联赛
挑战者联赛前 7 名晋级
leaderboard First icon1
avatar 1 icon
fire Filled icon
Alex7+ Days
2840
leaderboard Second icon2
avatar 2 icon
fire Filled icon
Jordan7+ Days
2650
leaderboard Third icon3
avatar 3 icon
fire Filled icon
Sam7+ Days
2420
4
avatar 4 icon
Casey
2180
5
avatar placeholder icon
fire Filled icon
Morgan7+ Days
1950
leaderboard Arrow Up icon晋级区leaderboard Arrow Up icon

多种学习方式

阅读、收听、自我测验、问 AI,或者查阅学过的任何内容。每节课都配合你的节奏。

变量入门
音频

变量是一个有名字的容器,用来存储值,方便你在程序后面引用。

在 Python 中,创建变量只需写下名字、一个等号,再写上要存储的值。

值可以随时间变化。给这个名字重新赋值,它就会指向新的值。

1xSarah

获得证书

每完成一门课程都能获得证书。把证书添加到你的 LinkedIn 个人资料和简历中,向雇主展示你的编程能力。

Coddy结业证书
兹证明张三已成功完成
python iconPython 基础
已验证
日期2026年1月
LinkedIn添加到 LinkedIn

为什么在 Coddy 上用 Python 学数据结构与算法

  • 整条路径,一种语言。数据结构、排序、递归、动态规划、图算法和面试题包全部用 Python 讲授,Python 面试系列也是如此,而它没有其他语言版本。只有位运算例外:它用 C++ 讲授,列在步骤之后。
  • 讲得清原理的内置类型。Python 给了你 list、dict、set、deque 和 heapq。亲手实现它们背后的结构,你才会明白为什么 list.pop(0) 很慢,为什么 dict 查找平均是常数时间,以及什么时候用堆比排序更好,而这正是你用了它们之后面试官会追问的问题。
  • 代码简短,思想一目了然。在 Python 中,链表或二分查找一屏就能写完,没有类型声明和内存管理挡路。这就是为什么它是学习算法最快的语言,也是为什么这么多候选人在编程面试中选择它。
  • 像面试一样评分。每节课都以一道由测试用例检查的挑战结束。没通过时,Bugsy 会阅读你的 Python 代码,引导你找到修复方法,而不是直接给出答案。大多数课程提供免费证书,每张证书都可以通过专属 URL 验证。

关于用 Python 学数据结构与算法的常见问题

Python 适合学习数据结构与算法吗?

适合,而且用来学习可以说是最好的选择:代码简短,你读到的是算法本身,而不是围绕它的语法。有两点取舍值得了解。Python 运行得比 Java 或 C++ 慢,这在时间限制严格的算法竞赛中会有影响,但在面试中很少成问题;另外,它的内置类型隐藏了你正在学习分析的开销,所以这条路径会让你先亲手实现它们。

编程面试需要掌握哪些 Python 数据结构?

list(动态数组)、dict 和 set(哈希表)、tuple、collections.deque(两端都很快的队列)、heapq(基于列表的二叉最小堆)以及 collections.Counter。要知道每个操作的开销,而不只是它的名字。Python 没有内置的链表、树、字典树或图,这些要你在第一步和第二步中自己实现。

Python 已经有栈和队列了,为什么还要自己实现?

因为面试很少让你使用队列,却经常问你的解法为什么慢。基于 list 的队列每次 pop(0) 都要付出代价,因为剩下的每个元素都要移动一位;deque.popleft() 则不会。每种结构亲手实现一次,你才能把开销掌握得足够熟练,不假思索地选对结构。

Python 做算法竞赛够快吗?

对大多数题目来说够快。在时间限制严格的情况下,C++ 更稳妥,这也是大多数算法竞赛选手使用它的原因;很多评测系统还提供 PyPy,同样的 Python 代码能跑得快得多。在面试中,你写代码的速度远比代码运行的速度重要,而这正是 Python 的优势。

Python 的递归深度限制是多少,对数据结构与算法有影响吗?

CPython 默认在调用深度达到 1,000 时停止,所以在一条很长的链上做递归深度优先搜索,可能会抛出 RecursionError。你可以用 sys.setrecursionlimit 提高限制,但更好的习惯,也是面试官喜欢看到的,是知道如何用循环加一个显式的栈来替代递归:这个栈就是你在第一步实现的结构。

开始这条路径前需要先会 Python 吗?

你应该熟悉函数、循环、列表和字典,最好也了解类,因为这里的每种结构都是用类写的。如果还没到这一步,可以先学 Coddy 免费的 Python 课程,学完后再从这条路径继续。

完成数据结构与算法路径能获得证书吗?

能。完成每一步,你就能获得整条数据结构与算法路径的一张免费证书。证书会列出你沿途完成的每门课程,并链接到每门课程各自的证书,任何人都能核实上面列出的每项技能。你可以把它添加到 LinkedIn 个人资料。这是 Coddy 颁发的结业证书,不是经过认证的学历资格。

其他学习路径

同样的课程,按不同职业方向编排。进度会保留:在一条路径上完成的课程,在所有包含它的路径上都算完成。

全部学习路径
Coddy 编程语言插图

免费开始数据结构与算法路径

开始学习