【问题标题】:Adjacency Set Representaion in PythonPython中的邻接表表示
【发布时间】:2017-02-14 01:58:13
【问题描述】:

所以我今天从大学图书馆得到了这本非常酷的书,Magnus Lie Hetland 的 Python Algorithms,在本书的第二章中,他创建了如下邻接表,这有点酷:

a,b,c,d,e,f,g,h = range(8)
N = [{b,c,d,e,f},{c,e},{d},{e},{f},{c,g,h},{f,h},{f,g}]

当我这样做时:

N[a]我得到了 N 的第一个元素,我有点惊讶它是如何以这种方式映射的?

我找到了这个问题,但它与我所问的不同,如果它是重复的,请告诉我。

Adjacency List and Adjacency Matrix in Python

谢谢, 优先级

【问题讨论】:

    标签: algorithm python-3.x graph


    【解决方案1】:

    这只是 Python。

    a,b,c,d,e,f,g,h = range(8)
    

    是元组赋值。它将 0 分配给 a,将 1 分配给 b,等等。

    N = [{b,c,d,e,f},{c,e},{d},{e},{f},{c,g,h},{f,h},{f,g}]
    

    创建一个名为 N 的数组,其中第 0 个元素是集合 {b,c,d,e,f} 等。

    所以当你说N[a]时,你也说N[0],这就是你看到的集合。

    在 Python 中通过硬编码构建常量图是一个很酷的技巧,但如果您需要根据其他算法的输入或输出动态构建图,那么您将需要不同的表示。

    【讨论】:

    • 我有我的怀疑,但我认为它只是映射了我在上面创建的任何内容,但是如果其中的元素数量超过 26 个字母字符怎么办,那么它是否开始按 aa、ab、ac 索引它们...等等?
    • 我知道其他表示我只是在阅读这本书。你永远不知道你会从一本介绍性的书(某种)中学到什么。 :)
    猜你喜欢
    • 2012-11-12
    • 2013-07-04
    • 1970-01-01
    • 1970-01-01
    • 2018-07-14
    • 1970-01-01
    • 1970-01-01
    • 2019-07-25
    • 1970-01-01
    相关资源
    最近更新 更多