Как мне создать сокращение, если мне нужно перебрать все значения картографа? - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть два выхода из моего картографа:

yield (destination,{'origin':origin,'count':count})
yield (origin,{'destination':destination,'count':count})

Это дает мне вывод, подобный следующему:

('United States', {'origin': 'Romania', 'count': '1'})
('Romania', {'count': '1', 'destination': 'United States'})
('United States', {'origin': 'Ireland', 'count': '264'})
('Ireland', {'count': '264', 'destination': 'United States'})
('United States', {'origin': 'India', 'count': '69'})
('India', {'count': '69', 'destination': 'United States'})
('Egypt', {'origin': 'United States', 'count': '24'})
('United States', {'count': '24', 'destination': 'Egypt'})
('Equatorial Guinea', {'origin': 'United States', 'count': '1'})
('United States', {'count': '1', 'destination': 'Equatorial Guinea'})
('United States', {'origin': 'Singapore', 'count': '25'})
('Singapore', {'count': '25', 'destination': 'United States'})

Теперь мне нужно написать редуктор, где я могу разделитьвышеупомянутые данные в две группы и итерации, используя два цикла for.Идея состоит в том, чтобы найти в сумме все возможные рейсы, которые можно совершить за два прыжка

Например:

Чтобы добраться из Румынии в Египет.Мы берем Romania -> United States and United States -> Egypt. The total possible flights would then be 1*24

Из того, что я понимаю, мне нужно дважды перебрать все значения и найти ключи, где Destination of 1 == origin of another.

До сих пор, я думаю, что мне нужно создать двагруппы: g1 (для всех ключей на основе источника) и g2 (для всех ключей на основе назначения)

, а затем итерация по каждой группе, находящая такие g1.destination == g2.origin.

Я иду в правильном направлении?Если так, то как бы такая функция выглядела в редукторе?Честно говоря, я не могу понять, как мне его кодировать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...