2017-06-22 2 views
0

Ich versuche eine Möglichkeit zu finden, eine Variable Anzahl von Variablen mit Untervariablen zu erstellen, um Daten zu speichern, bevor Sie es analysieren, um es zu sortieren.Erstellen Sie eine unbekannte Anzahl von "verschachtelten" Variablen

Lassen Sie uns tiefer gehen: Ich muss eine variable Anzahl von nächsten Abfahrtsdaten für Haltestellen aus den zwei Richtungen einer variablen Liste von Transportlinien speichern. Wenn ich einen Feed analysiere, habe ich jedes Mal, wenn ich Objekte mit einem For-Loop-One-Fahrzeug aus einer Linie mit seinen Abfahrten an jedem Halt in eine bestimmte Richtung iteriere, also weiß ich am Start nicht, wie viele und welche Linien, Stopps und Abfahrten ich werde haben.

Ich weiß nicht, wie man die relevanten Variablen erstellt, um all diese Daten speichern zu können und dann die nächsten Abfahrten an jedem Stopp mit Hilfe von Linien-, Richtungs- und Stoppnamen als Schlüssel wiederholen zu können.

Können Sie mir helfen, die richtigen Strukturen zu finden und wie?

Danke für Ihre Hilfe.

+2

Ich denke, Sie müssen Ihre Daten modellieren, aber Python-Wörterbücher klingen wie etwas Sie können verwenden, und Sie können nach Bedarf Elemente hinzufügen. – Craicerjack

+0

Warum verwenden Sie keine Listen und Wörterbücher für diese Aufgabe? Sie können neue Objekte dynamisch daran anhängen ... –

+0

Ich dachte darüber nach, aber ich weiß nicht, wie ich sie richtig organisieren soll, um es machbar zu machen. Nehmen wir an, ich habe eine "C" -Zeile mit W und X Stopps, mit jeweils zwei Abfahrtszeiten in jeder Richtung (W, ausgehende: 11:00, 12:00; X, ausgehende: 11:30, 12:30; W, eingehend: 11:45, 12:45; X, eingehend 12:15, 13:15) und eine "B" -Linie mit Y und Z hält an, mit zwei Abfahrtszeiten jeweils für jede Richtung (Y, Ausgang: 11:00, 12:00; Z, Outbound: 11:30, 12:30; Y, Inbound: 11:45, 12:45; Z, Inbound 12:15, 13:15), wie stelle ich sie dynamisch ein? Ich bin überhaupt nicht gewohnt, mit dynamisch verschachtelten Daten umzugehen ... daher meine Frage. –

Antwort

1

Beginnend mit nur Artikel:

vehicles = ('vehicle 1', 'vehicle 2') 

# Simulating 2 departures list 
dep_vehicle_1 = [str(time).zfill(2)+':00' for time in range(10)] 
dep_vehicle_2 = [str(time).zfill(2)+':00' for time in range(5)] 

# Create a dictionary to start collecting departures times 
departures_list = {} 

# Filling the departures dictionary with vehicles 
for vehicle in vehicles: 
    departures_list[vehicle] = [] 
    # Output: 
    # {'vehicle 1': [], 'vehicle 2': []} 

# Later, to add (n) departures time, just launch the loop for each vehicle: 
departures_list['vehicle 1'] += dep_vehicle_1 
departures_list['vehicle 2'] += dep_vehicle_2 

# If later you need to iterate over time, you can do: 
for time in departures_list['vehicle 1']: 
    print(time) 

müssen Beachten Sie auch, dass Sie nisten ein Wörterbuch in ein Wörterbuch:

departures_list['another_set'] = {'option1': 'value1', 'option2': 'value2'} 
print(departures_list) 
''' 
{'vehicle 1': ['00:00', '01:00', '02:00', '03:00', '04:00', 
'05:00', '06:00', '07:00', '08:00', '09:00'], 
'vehicle 2': ['00:00', '01:00', '02:00', '03:00', '04:00'], 
'another_set': {'option1': 'value1', 'option2': 'value2'}} 
''' 

print(departures_list['another_set']) 
# {'option1': 'value1', 'option2': 'value2'} 

print(departures_list['another_set']['option1']) 
# value1 

Wenn Sie über die unbekannte Anzahl von Fahrzeugen iterieren möchten, dass Ihre Wörterbuch können Sie:

Verwandte Themen