I have this code written. where a list of static times, and realtime-delayed times are passed through. these are frequently being refreshed and there are times where a train, for example train 23, is scheduled for 2:00PM, so after 2:00PM it leaves the list.
But if it’s delayed, I still want it to be apart of the final list (predictionArray), which is why I have the boolean flag set the way it is. So Basically it compares every static response with every realtime response, and if true.
It won’t append to predictionArray (since all realtime responses are in there already). Is there a way I could do this maybe without booleans?
Again, I need realtime responses in the predictionArray to begin with incase there are any realtime trains that have been added that aren’t on the returned static schedule.
Any help is much appreciated. Thank you.
def coalesceMetraData(staticResponses, realtimeResponses): predictionArray = list(realtimeResponses) for response in staticResponses: responseExists = False for responseReal in realtimeResponses: if (response['key'] == responseReal['key']): responseExists = True break if (responseExists != True): predictionArray.append(response) predictionArray = sorted(predictionArray, key=lambda d:d['time']) return predictionArray[:5]