前段时间脑子抽了要给部门内部的同事做技术分享,主题是 Data Structures in Python ,大家觉得讲点啥好? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
zhoudaiyu
V2EX    程序员

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

  •  
  •   zhoudaiyu
    PRO
    2021-03-06 17:44:20 +08:00 via iPhone 3168 次点击
    这是一个创建于 1685 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    t/758444
    darknoll
        9
    darknoll  
       2021-03-06 19:35:37 +08:00 via Android
    又不是着急去面试,这玩意谁会听啊,整些实用的不好吗?
    zhoudaiyu
        10
    zhoudaiyu  
    OP
    PRO
       2021-03-06 19:37:12 +08:00 via iPhone
    @darknoll 大家讲的都这样,都讲什么架构,我觉得我这个挺实际的了
    lambdafate
        11
    lambdafate  
       2021-03-06 20:22:13 +08:00
    不建议讲跳表。可以讲讲并查集,线段树等高级一点的数据结构,然后再从 LeetCode 找几道例题当场 AC
    heyjei
        12
    heyjei  
       2021-03-06 20:32:00 +08:00
    当然是第一种,能够把 Python 的内置数据结构讲透也是一件不容易的事,特别是一些使用上的代码陷阱。
    MicroBotter
        13
    MicroBotter  
       2021-03-06 20:50:08 +08:00
    你是不是在 SUSE 工作呀?
    zhoudaiyu
        14
    zhoudaiyu  
    OP
    PRO
       2021-03-06 20:52:23 +08:00 via iPhone
    @MicroBotter 真高看我为啥你会认为我在 SUSE
    zhoudaiyu
        15
    zhoudaiyu  
    OP
    PRO
       2021-03-06 20:53:54 +08:00 via iPhone
    @lambdafate 跳表不太高级是嘛我就看 redis 用了跳表
    MicroBotter
        16
    MicroBotter  
       2021-03-06 20:55:09 +08:00
    @zhoudaiyu 因为有个人和你用差不多的头像、语气、和名字,都是什么 Zhou 。。。。github.com/AlynxZhou
    zhoudaiyu
        17
    zhoudaiyu  
    OP
    PRO
       2021-03-06 20:56:34 +08:00 via iPhone
    @MicroBotter 我可够不上 SUSE
    zhoudaiyu
        18
    zhoudaiyu  
    OP
    PRO
       2021-03-06 20:59:01 +08:00 via iPhone
    @zhoudaiyu 他居然也牙疼 太巧了 8
    calmzhu
        19
    calmzhu  
       2021-03-06 21:02:36 +08:00
    不如
    讲下脑子怎么抽的?
    zhoudaiyu
        20
    zhoudaiyu  
    OP
    PRO
       2021-03-06 21:19:02 +08:00 via iPhone
    @calmzhu 领导使了一诈,说所有人都得讲,先确定讲什么的,就把坑占了,后续的就不能再讲这个了,但是后来有好多人就没搭理他,也就不用讲了...
    Samuelcc
        21
    Samuelcc  
       2021-03-07 20:09:08 +08:00 via Android   1
    这个题目有点大啊 挺难的
    技术分享个人觉得要讲得深,打破砂锅一层层讲,而且得百问不倒,简单地归纳一些网上的资料没什么实际意义
    helloworld2076
        22
    helloworld2076  
       2021-03-08 08:11:45 +08:00 via iPhone
    @zhoudaiyu
    zhou,世界上的另一个我
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2809 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 14:18 PVG 22:18 LAX 07:18 JFK 10:18
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86