Форум сайта python.su
Всем привет!
5 (трое мужчин и две женщины) человек должны выйти из разных точек, время хода у всех разное.
В пункт назначения женщины должны прийти на 1 мин раньше мужчин.
600, 320, 400, 120, 250 - время хода до пункта назначения.
Вот мой код:
a = {600: {'sex':'male','name':'Joe'}, 320: {'sex':'female','name':'Sara'}, 400: {'sex':'female','name':'Kristina'}, 120: {'sex':'male','name':'Bob'}, 250: {'sex':'male','name':'Fredd'}} print a # Подсчитываем разницу во времени прибытия и сортируем ее в обратном порядке wait = list(a) wait.sort(reverse=True) print wait wait = map(lambda x: x[0]-x[1], zip(wait, wait[1:]))+[0] print wait # Заносим в словарь разницу времени прибытия for i, z in zip(sorted(a, reverse=True), wait): a[i]['wait']=z #print a #{600: {'wait': 200, 'name': 'Joe', 'sex': 'male'}, 320: {'wait': 70, 'name': 'Sara', 'sex': 'female'}, 400: {'wait': 80, 'name': 'Kristina', 'sex': 'female'}, 250: {'wait': 130, 'name': 'Fredd', 'sex': 'male'}, 120: {'wait': 0, 'name': 'Bob', 'sex': 'male'}}) for i in sorted(a, reverse=True): print '%s ушел(ла)' %(a[i]['name']) time.sleep(a[i]['wait'])
Отредактировано Seganapa (Сен. 26, 2012 12:11:18)
Офлайн