2017-06-22 24 views
0

我试图找到一种方法来创建可变数量的变量与子变量来存储数据,然后再解析它进行排序。创建未知数量的“嵌套”变量

让我们来深入一点:我需要存储可变数量的下一个离站数据,用于从交通线路的变量列表的两个方向停靠。解析一个feed,每次我用一个for循环迭代一个车辆的一个车辆,并且每个车站在一个给定的方向上都有一个车辆,所以我不知道在开始时会有多少,哪些线路,停止和离开。有。

我不知道如何创建相关变量以便能够存储所有这些数据,然后能够使用行,方向和停止名称作为关键字在每个站点上迭代下一个站点。

你能帮我找到适当的结构使用和如何?

感谢您的帮助。

+2

我认为你需要建模你的数据,但python字典听起来像东西你可以使用,你可以根据需要添加项目。 – Craicerjack

+0

为什么你不使用列表和字典来完成这个任务?你可以动态地追加新的对象... –

+0

我想到了它,但我不知道如何正确地组织它们使它成为可行的。假设我有一个带有W和X站点的“C”线,每个方向各有两个出发时间(W,出站:11:00,12:00; X出站:11:30,12:30; W, Inbound:11:45,12:45; X,inbound 12:15,13:15)和Y和Z的“B”线停止,每个方向上有两个出发时间(Y,出站: 12:00; Z,出港:11:30,12:30; Y,入境:11:45,12:45; Z,入境12:15,13:15),我该如何动态设置它们?我根本不习惯处理动态嵌套数据......因此我的问题。 –

回答

1

用简单的项目开始:

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) 

另外需要注意的是,你可以嵌套一个字典到词典:

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 

如果你想遍历在未知数量的车辆你字典你可以:

for key in departures_list: 
    print(key, departures_list[key])