前段时间脑子抽了要给部门内部的同事做技术分享,主题是 Data Structures in Python ,大家觉得讲点啥好?

2021-03-06 17:44:20 +08:00
 zhoudaiyu

我觉得这个主题可以理解成 Python 中的数据结构,也可以理解成数据结构——用 Python 实现。如果按第一种讲呢,就是讲讲 Python 的内置数据结构,再加 collections 包里面的几个数据结构我觉得就行了(其实我想讲内置数据结构在 Python 源码中的实现,但能力不足时间也不够了,🐶);如果按第二种讲呢,打算讲讲跳表和优先队列,重点是数据结构,只是用 Python 实现的。大家有啥想法?不按照我说的这两种讲只要切合主题就没问题。PS:下下周就要讲,我还没做任何准备,只是想了想内容

2803 次点击
所在节点    程序员
22 条回复
wangxn
2021-03-06 18:01:30 +08:00
说实话,我是从这里第一次真正知道跳表这个数据结构,教科书中貌似都是着重说 B/B+树。
个人感觉这个主题不够吸引人,第一种基本就是介绍文档了;第二种就像让大家再上一次《数据结构》……
zhoudaiyu
2021-03-06 18:04:45 +08:00
@wangxn 当时就想装个 B 讲点复杂的数据结构🐶,后来活太多也没时间准备了,只能找点简单的讲讲了
renmu123
2021-03-06 18:15:48 +08:00
不建议将跳表这种基本用不到的东西,不如好好讲一下大家都用得到哈希表的原理以及实现,或者各种链表结构,或者哈夫曼编码以及应用,但是听起来这个主题就很无聊。
wangxn
2021-03-06 18:22:06 +08:00
感觉可以穿插点最佳实践之类的内容,比如怎样高效遍历( itertools 模块),怎样用函数式编程的风格来操作它们,怎样定义节点以更好地节省内存,是否可能出现循环引用,是否会出现“内存泄漏”之类的内容。
zhoudaiyu
2021-03-06 18:54:32 +08:00
@renmu123 其实,这个技术分享就有点让大家讲点难一点的东西,不过老哥说的这个哈希表确实很重要,考虑把跳表换成这个
zhoudaiyu
2021-03-06 18:55:22 +08:00
@wangxn 有道理啊 我咋就没想到这些 😳
MoYi123
2021-03-06 18:57:53 +08:00
from functools import lru_cache 里的链表的实现可以一讲,用了一个比较少见的 python 写法。

root = [] # root of the circular doubly linked list
root[:] = [root, root, None, None] # initialize by pointing to self
zhoudaiyu
2021-03-06 19:07:58 +08:00
@MoYi123 我怀疑你能看到我的发帖记录 但是没证据

https://www.v2ex.com/t/758444
darknoll
2021-03-06 19:35:37 +08:00
又不是着急去面试,这玩意谁会听啊,整些实用的不好吗?
zhoudaiyu
2021-03-06 19:37:12 +08:00
@darknoll 大家讲的都这样,都讲什么架构,我觉得我这个挺实际的了
lambdafate
2021-03-06 20:22:13 +08:00
不建议讲跳表。可以讲讲并查集,线段树等高级一点的数据结构,然后再从 LeetCode 找几道例题当场 AC
heyjei
2021-03-06 20:32:00 +08:00
当然是第一种,能够把 Python 的内置数据结构讲透也是一件不容易的事,特别是一些使用上的代码陷阱。
MicroBotter
2021-03-06 20:50:08 +08:00
你是不是在 SUSE 工作呀?
zhoudaiyu
2021-03-06 20:52:23 +08:00
@MicroBotter 真高看我😂为啥你会认为我在 SUSE
zhoudaiyu
2021-03-06 20:53:54 +08:00
@lambdafate 跳表不太高级是嘛😂我就看 redis 用了跳表
MicroBotter
2021-03-06 20:55:09 +08:00
@zhoudaiyu 因为有个人和你用差不多的头像、语气、和名字,都是什么 Zhou 。。。。github.com/AlynxZhou
zhoudaiyu
2021-03-06 20:56:34 +08:00
@MicroBotter 😨我可够不上 SUSE
zhoudaiyu
2021-03-06 20:59:01 +08:00
@zhoudaiyu 他居然也牙疼 太巧了 8
calmzhu
2021-03-06 21:02:36 +08:00
不如
讲下脑子怎么抽的?
zhoudaiyu
2021-03-06 21:19:02 +08:00
@calmzhu 领导使了一诈,说所有人都得讲,先确定讲什么的,就把坑占了,后续的就不能再讲这个了,但是后来有好多人就没搭理他,也就不用讲了...

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/759090

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX