创建一个未知数量的"嵌套"变量

时间:2017-06-22 14:14:10

标签: python python-2.7

我试图找到一种方法来创建一个带有子变量的可变数量的变量来存储数据,然后再对其进行排序。

让我们更深入:我需要从变量运输行列表的两个方向存储可变数量的下一个离开数据。解析一个饲料,每次我用一个for循环的物品来循环一个车辆,并且在一个给定的方向上每个站点离开一条线路,所以我不知道在开始时有多少以及哪些线路,停靠和离开我会的。

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

你能帮我找到合适的结构和使用方法吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分: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])