小编gud*_*ddu的帖子

如何在python中的for循环中跳过下一个迭代?

我有以下代码在图顶点列表上运行广度优先搜索(bfs)。

当前,我有在列表中的每个项目上运行bfs的代码,但是我想这样做,以便如果for循环中的下一个项目已经在发现的节点集中,那么for循环应该跳过它,因此不必在每个顶点上都执行bfs。

我这样做的主要原因是因为我必须读一个非常大的文件,所以当我在每个顶点上执行bfs时,这会导致内存崩溃。我的代码适用于小型测试用例,但不适用于大型文件。

我知道continue语句允许您跳过当前迭代,但是我不知道如何跳过下一个迭代。

任何帮助表示赞赏;谢谢。

def count_components(g):
    dictionary = {}
    dict_list = {}
    for i in g.vertices():
      dictionary = breadth_first_search(g,i)
      dictionary_keys = list(dictionary.keys())
      dict_list[i] = dictionary_keys
    for value in dict_list.values():
      for i in range(len(value)):
        value[i] = str(value[i])
    result = {}
    for key, value in dict_list.items():
      dict_list[key].sort(key=str.lower)
      if value not in result.values():
        result[key] = value
    count = len(result)
    return count
Run Code Online (Sandbox Code Playgroud)

python

1
推荐指数
1
解决办法
6751
查看次数

标签 统计

python ×1