【问题标题】:Transforming adjaceny-matrix into an adjaceny-list将邻接矩阵转换为邻接列表
【发布时间】:2021-10-19 03:36:25
【问题描述】:

对于下面给定的邻接矩阵: [[0, 1, 0, 4], [1, 0, 3, 1], [0, 3, 0, 2], [4, 1, 2, 0]]

如何将其转换为如下所示的邻接列表,其中每个元组为 (node,weight)

[[(1, 1), (3, 4)], [(0, 1), (2, 3), (3, 1)], [(1, 3), (3, 2)], [(0, 4), (1, 1), (2, 2)]]

非常感谢!

【问题讨论】:

    标签: python-3.x matrix adjacency-matrix adjacency-list


    【解决方案1】:

    使用双重理解:

    a=[[0, 1, 0, 4], [1, 0, 3, 1], [0, 3, 0, 2], [4, 1, 2, 0]]
    print([[(i,x) for i,x in enumerate(y) if x!=0] for y in a])
    

    【讨论】:

    • 非常感谢,我在列表理解或枚举方面没有经验,因此很难找到您的解决方案。只是确认一下,这里的复杂度是 O(n^2) 吗?
    • 复杂度为 O(n*m),其中 n 和 m 是主列表和嵌套列表的长度。如果它们相同,则为 O(n^2)!如果它解决了您的问题,请考虑接受答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多