Ich habe den folgenden Code, der Breite erste Suche (bfs) auf einer Liste von Grafikscheitelpunkten ausgeführt wird.Wie überspringen Sie die nächste Iteration während einer for-Schleife in Python?
Derzeit habe ich Code, der bfs für jedes Element in der Liste ausführt, aber ich möchte es so machen, dass, wenn das nächste Element in der for-Schleife bereits in der Gruppe der erkannten Knoten ist, die for-Schleife überspringen sollte darüber hinaus, so dass bfs nicht an jedem Eckpunkt ausgeführt werden muss.
Mein Hauptgrund dafür ist, weil ich eine sehr große Datei einlesen muss, so dass es einen Speicherabsturz verursacht, wenn ich bfs auf jedem Eckpunkt ausführe; Mein Code arbeitet mit kleinen Testfällen, aber nicht mit der großen Datei.
Ich weiß, die continue-Anweisung ermöglicht es Ihnen, über die aktuelle Iteration zu überspringen, aber ich kann nicht herausfinden, wie die nächste Iteration zu überspringen.
Jede Hilfe wird geschätzt; Danke.
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
Gibt es einen Grund, warum Sie die aktuelle Iteration nicht einfach überspringen können, wenn sich das aktuelle Element bereits in der Gruppe der erkannten Knoten befindet? –
Können Sie angeben, wo (in welcher Schleife) dieses Überspringen stattfinden soll? Vielleicht fügen Sie einen bedingten und dann '# HELP - hier 'hinzu? –