【问题标题】:Python: Loop to find the neighbours of each node_idPython:循环查找每个node_id的邻居
【发布时间】:2018-07-13 03:21:30
【问题描述】:

我有一个看起来像这样的循环:

i = 0
while i < len(node_id):
    for arc in self._adjacency_lists[i]:
        neighbours.append(arc.head_node_id)
        i += 1

这给了我输出:

[1, 2, 2, 3, 1, 3]

其中第 0 和第 1 个元素是 node_id = 0 的邻居,2 是 node_id = 1 的邻居,node_id = 1 的 3,node_id = 3 的 1 和 node_id = 4 的 2。如何附加这些邻居到一个新列表,所以我的输出看起来像:

new_list = [[1,2], [2], [3], [1], [3]]

【问题讨论】:

  • 虽然您可能正在解决找到最短路径的问题,但我看不出最短路径标记如何适合这个特定问题。
  • 另外...你的努力好吗?当您需要一个新列表时,创建一个。你被困在哪里了?

标签: python python-3.x algorithm loops shortest-path


【解决方案1】:

您应该首先为每个节点附加一个空列表,然后将邻居添加到该列表中。

i = 0
while i < len(node_id):
    neighbours.append([])
    for arc in self._adjacency_lists[i]:
        neighbours[-1].append(arc.head_node_id)
        i += 1

【讨论】:

    猜你喜欢
    • 2020-01-29
    • 1970-01-01
    • 2022-08-23
    • 1970-01-01
    • 2014-12-17
    • 1970-01-01
    • 2020-11-05
    • 1970-01-01
    • 2014-02-05
    相关资源
    最近更新 更多