May-24-2020, 04:05 PM
I want to create a series of lists that contain paths of some distance x, until I reach a specific object which is called the target (its a graph problem where I am finding a path from the source to a target). For example, I want the list of neighbours that are distance 3 away from my source to be called new_neighbours_len3. I have tried to show this in the code below by putting the x in brackets, but I know this will not give my required result. What would I code to get the lists with the changing value of x at the end of their name?
while pathfound == False:
x = 2 # x denotes the 'distance' from source
new_neighbours_len(x) = set()
for oldneighbour in new_neighbours_len(x-1):
neighbours_for_person(oldneighbour) #this will give neighbours that are of length x from source
for i in len(neighbours):
if neighbours[i[1]] = target:
for j in len(potential_paths):
if potential_paths[j[-1][1]] == oldneighbour: #this should give me the path from source to the previous neighbour
path = potential_paths[j].append(neighbours[i]) #not sure if this will work because it calls 'i'
#from the previous for loop.
pathfound == True #this means the while loop will not continue
else:
continue #maybe this should 'pass'
else:
new_neighbours_len(x).add(neighbours[i[1]]) #this should add each neighbour at distance x from source to set
#new_neighbours_len(x)
for j in len(potential_paths):
if potential_paths[j[-1][1]] == oldneighbour:
potential_paths.append(potential_paths[j].append(neighbours[i]))
#this is gonna create a larger potential paths list than is optimal, because I could try to remove the
#list that ended with oldneighbour (as we know this hasn't reached target if oldneighbour =! target). But
#I need to use this potential path when creating my new ones
x += 1
