Я пытаюсь моделировать пересечение. Ниже приведен код, который я написал. Основываясь на времени до пересечения, я дал предпочтения каждому транспортному средству. Чтобы проверить конфликт, я хочу, чтобы разница во времени между транспортными средствами, занимающими пересечение, составляла 10 секунд. При запуске этого кода он дает мне «KeyError: 1». Может ли кто-нибудь помочь?Манипуляция словаря в Python
number_of_vehicles = 3
preference_dict = {'Vehicle1':1, 'Vehicle2': 3, 'Vehicle3':2}
time_to_intersection = {'Vehicle1':64, 'Vehicle2':72, 'Vehicle3': 69}
preference = 1
while preference < number_of_vehicles:
for key1,key2 in preference_dict.items():
if preference_dict[key1] == preference and preference_dict[key2] == preference+1:
if time_to_intersection[key1] > time_to_intersection[key2]:
time_to_intersection[key2]+=50*preference
time_diff = time_to_intersection[key2] - time_to_intersection[key1]
print "The time diff is:",time_diff
if time_diff < 10:
time_to_intersection[key2] +=50
print time_to_intersection
preference+=1
в 'time_to_intersection [key2]', key2 либо 1,3 или 2, и вы пытаетесь использовать его в качестве ключа, но они существуют только в качестве значения в preference_dict – Whitefret
Это поражает меня как очень странно для моделирования этого состояния. Почему бы просто не использовать массив (список) кортежей, если у вас аллергия на реальные объекты? Например. 'state = [(1, 64), (3, 72), (2, 69)] или что-то в этом роде. Я не уверен, что понимаю смысл «предпочтения», но я сохранил ценности, которые у вас были. – unwind
Предпочтение состоит в том, что первостепенное значение имеет транспортное средство, которому требуется минимальное время для достижения пересечения. –