在不使用 For 循环的情况下进行更快的迭代

问题描述

我有大量信息,我需要将它们作为节点存储在图中;然而,它非常缓慢。这里是关于函数代码的信息,我怎样才能让它更快? (也许可以使用 numpy 或内置列表运算符?)

node_lines :字符串数组。数组中的每个元素都存储一个节点的信息,它看起来像这样:['5 7'] 这里第一个数字是节点 id,第二个数字是节点的组 id。 node_lines 数组中的每个元素都由这些 id-group id 对作为字符串组成。

这是代码

    for line in node_lines:

        info = line.split()
        id = int(info[0])
        group_id = int(info[1])

        node = n.Node(id,group_id) // Node initializer

        graph.nodes.append(node) // Adding the node to nodes array in the graph 
    
        if group_id> max_group_id: // This part is for finding the maximum group_id in the input
            max_group_id= group_id

所以,我在这里所做的基本上是:对于每一行,提取 node_id 和 group_id 信息并将此节点添加到图形中。并且还在每次迭代中寻找最大的 group_id,以便我可以在迭代结束时找到组的总数。

假设“node”和“graph”类函数是有效的,我只是想改进这部分。

还有一个边缘信息部分,我也分享了阅读它的代码

    for line in edge_lines:

        info = line.split()
        src = int(info[0])
        dst = int(info[1])

        edge = e.Edge(src,dst) // Initialization for edge class
        graph.edges.append(edge) // Adding edge to the graph

同样,在这一部分,我有一个数组“edge_lines”,其中每个元素都包含一个字符串,例如 '5 7' 对应于边的“源”和“目的地”。然后,将边添加到图中。

这两个代码如何提高效率?我主要是寻求更好的迭代方式,但我也愿意接受任何建议。

谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)