Поскольку я довольно новичок, этот вопрос будет звучать глупо, но я понятия не имею, как к этому подойти.
Я пытаюсь взять список узлов и для каждого из узлов хочу создать массив предшественников и преемников в упорядоченном массиве всех узлов.
В настоящее время мой код выглядит так:
nodes = self.peers.keys()
nodes.sort()
peers = {}
numPeers = len(nodes)
for i in nodes:
peers[i] = [self.coordinator]
for i in range(0,len(nodes)):
peers[nodes[i%numPeers]].append(nodes[(i+1)%numPeers])
peers[nodes[(i+1)%numPeers]].append(nodes[i%numPeers])
# peers[nodes[i%numPeers]].append(nodes[(i+4)%numPeers])
# peers[nodes[(i+4)%numPeers]].append(nodes[i%numPeers])
Последние две строки следует позже использовать для создания графика пропуска, но это не очень важно. Проблема в том, что он не работает надежно, иногда пропускается предшественник или преемник, а вместо него используется следующий и т. Д. Это вообще правильно или есть лучший способ сделать это? В основном мне нужно получить индексы массива с определенными смещениями друг от друга.
Есть идеи?