• 请不要在回答技术问题时复制粘贴 AI 生成的内容
zhoudaiyu
V2EX  ›  程序员

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

  •  
  •   zhoudaiyu · Mar 6, 2021 via iPhone · 3916 views
    This topic created in 2072 days ago, the information mentioned may be changed or developed.

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

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

    https://www.v2ex.com/t/758444
    darknoll
    darknoll
    Mar 6, 2021 via Android
    9
    又不是着急去面试,这玩意谁会听啊,整些实用的不好吗?
    zhoudaiyu
    zhoudaiyu
    OP
    Mar 6, 2021 via iPhone
    10
    @darknoll 大家讲的都这样,都讲什么架构,我觉得我这个挺实际的了
    lambdafate
    lambdafate
    Mar 6, 2021
    11
    不建议讲跳表。可以讲讲并查集,线段树等高级一点的数据结构,然后再从 LeetCode 找几道例题当场 AC
    heyjei
    heyjei
    Mar 6, 2021
    12
    当然是第一种,能够把 Python 的内置数据结构讲透也是一件不容易的事,特别是一些使用上的代码陷阱。
    MicroBotter
    MicroBotter
    Mar 6, 2021
    13
    你是不是在 SUSE 工作呀?
    zhoudaiyu
    zhoudaiyu
    OP
    Mar 6, 2021 via iPhone
    14
    @MicroBotter 真高看我😂为啥你会认为我在 SUSE
    zhoudaiyu
    zhoudaiyu
    OP
    Mar 6, 2021 via iPhone
    15
    @lambdafate 跳表不太高级是嘛😂我就看 redis 用了跳表
    MicroBotter
    MicroBotter
    Mar 6, 2021
    16
    @zhoudaiyu 因为有个人和你用差不多的头像、语气、和名字,都是什么 Zhou 。。。。github.com/AlynxZhou
    zhoudaiyu
    zhoudaiyu
    OP
    Mar 6, 2021 via iPhone
    17
    @MicroBotter 😨我可够不上 SUSE
    zhoudaiyu
    zhoudaiyu
    OP
    Mar 6, 2021 via iPhone
    18
    @zhoudaiyu 他居然也牙疼 太巧了 8
    calmzhu
    calmzhu
    Mar 6, 2021
    19
    不如
    讲下脑子怎么抽的?
    zhoudaiyu
    zhoudaiyu
    OP
    Mar 6, 2021 via iPhone
    20
    @calmzhu 领导使了一诈,说所有人都得讲,先确定讲什么的,就把坑占了,后续的就不能再讲这个了,但是后来有好多人就没搭理他,也就不用讲了...
    Samuelcc
    Samuelcc
    Mar 7, 2021 via Android❤️1
    21
    这个题目有点大啊 挺难的
    技术分享个人觉得要讲得深,打破砂锅一层层讲,而且得百问不倒,简单地归纳一些网上的资料没什么实际意义
    helloworld2076
    helloworld2076
    Mar 8, 2021 via iPhone
    22
    @zhoudaiyu
    zhou,世界上的另一个我
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1444 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 48ms · UTC 16:07 · PVG 00:07 · LAX 08:07 · JFK 11:07
    ♥ Do have faith in what you're doing.