alist = [ 'A', 'B ' C', 'D']python - durch die Liste iterieren, um das aktuelle Element als Schlüssel, und die vorderen und hinteren Elemente als Werte zuzuordnen?
was diese Liste repräsentiert ist: A < -> B < -> C < -> D
Ich möchte auf Karte wie die folgenden:
A: B
B: A, C
C: B, D
D: C
Zuerst habe ich:
Aber das ist offensichtlich falsch, weil es zwei Elemente überspringt.
alist = ['A','B', 'C', 'D']
graph = {}
i = 2
while i < len(alist):
current, front, back = alist[i-1], alist[i-2], alist[i]
if current not in graph:
graph[current] = [front, back]
else:
graph[current].append(front)
graph[current].append(back)
i+=1
Wie könnte ich das beheben? Bare mit mir bitte, ich bin wirklich schlecht mit Iterationen ..
Wird die Liste nur ein eindeutiges Element enthalten, oder ist das der Grund, warum Sie 'if current not in graph' überprüfen? –
Was passiert, wenn ich 0 bin? Denken Sie daran – Natecat
@ juanpa.arrivillaga oops Ich denke, dass es für diesen Fall unnötig ist, da wir nur eine Liste betrachten, aber es nimmt ursprünglich eine Liste von Diagrammen! Ich habe es vereinfacht, aber vergessen, das herauszunehmen – bisuke