Словарь, где значения могут быть либо списком, либо списком списков. ⇐ Python
Словарь, где значения могут быть либо списком, либо списком списков.
Я пытаюсь построить график результатов оптимизации маршрутов грузовиков с помощью библиотеки networkx. Сначала мне нужно подготовить данные, и я застрял.
Вот небольшой пример исходных данных:
Маршрут автомобиля 0 В0 [0,3](В0) 1 В0 [3,0](В0) 2 В1 [0,3](В1) 3 В1 [0,8](В1) 4 В1 [2,0](В1) 5 В1 [3,2](В1) 6 В1 [8,0](В1) Есть два грузовика: V0 и V1. Маршрут для V0: от 0 до 3 до 0. Но у V1 есть ДВА маршрута: от 0 до 8 до 0 И от 0 до 3 до 2 до 0.
Каждый обход должен начинаться и заканчиваться в узле 0.
Мне нужно решить две проблемы:
[*]Для каждого грузовика (V0, V1) я должен найти все туры в заданном списке, который начинается и заканчивается нулем. [*]Поток туров не может иметь перерывов: конец каждого подтура [0,8] должен быть началом следующего [8,0]
Окончательный результат должен выглядеть:
{'V0': [0,3,0], 'V1': [[0,3,2,0], [0,8,0]]} У меня есть код, но он не дает того, что я хочу:
tours = {'V0': ['0,3', '3,0'], 'V1': ['0,3', '0,8', '2,0', '3,2', '8,0']} защита Convert_to_list(s): список возврата(map(int, s.split(','))) # Функция для обработки каждого значения в словаре Tours Защиту Process_value (значение): результат = [] текущий_список = [] за пару по стоимости: пара_список = конвертировать_в_список (пара) если не текущий_список или пара_список[0] == 0: current_list.extend(pair_list) элиф пара_список[1] == 0: current_list.append(pair_list[0]) current_list.append(0) result.append(текущий_список) текущий_список = [0] еще: current_list.append(pair_list[0]) если текущий_список: current_list.append(0) result.append(текущий_список) вернуть результат # Создайте словарь «tours1», используя функции обработки Tours1 = {ключ: Process_value(значение) для ключа, значение в Tours.items()} # Распечатываем результат распечатать(туры1) ВЫВОД:
{'V0': [[0, 3, 3, 0], [0, 0]], 'V1': [[0, 3, 0, 8, 2, 0], [0 , 3, 8, 0], [0, 0]]} Есть идеи?
Спасибо!
Я пытаюсь построить график результатов оптимизации маршрутов грузовиков с помощью библиотеки networkx. Сначала мне нужно подготовить данные, и я застрял.
Вот небольшой пример исходных данных:
Маршрут автомобиля 0 В0 [0,3](В0) 1 В0 [3,0](В0) 2 В1 [0,3](В1) 3 В1 [0,8](В1) 4 В1 [2,0](В1) 5 В1 [3,2](В1) 6 В1 [8,0](В1) Есть два грузовика: V0 и V1. Маршрут для V0: от 0 до 3 до 0. Но у V1 есть ДВА маршрута: от 0 до 8 до 0 И от 0 до 3 до 2 до 0.
Каждый обход должен начинаться и заканчиваться в узле 0.
Мне нужно решить две проблемы:
[*]Для каждого грузовика (V0, V1) я должен найти все туры в заданном списке, который начинается и заканчивается нулем. [*]Поток туров не может иметь перерывов: конец каждого подтура [0,8] должен быть началом следующего [8,0]
Окончательный результат должен выглядеть:
{'V0': [0,3,0], 'V1': [[0,3,2,0], [0,8,0]]} У меня есть код, но он не дает того, что я хочу:
tours = {'V0': ['0,3', '3,0'], 'V1': ['0,3', '0,8', '2,0', '3,2', '8,0']} защита Convert_to_list(s): список возврата(map(int, s.split(','))) # Функция для обработки каждого значения в словаре Tours Защиту Process_value (значение): результат = [] текущий_список = [] за пару по стоимости: пара_список = конвертировать_в_список (пара) если не текущий_список или пара_список[0] == 0: current_list.extend(pair_list) элиф пара_список[1] == 0: current_list.append(pair_list[0]) current_list.append(0) result.append(текущий_список) текущий_список = [0] еще: current_list.append(pair_list[0]) если текущий_список: current_list.append(0) result.append(текущий_список) вернуть результат # Создайте словарь «tours1», используя функции обработки Tours1 = {ключ: Process_value(значение) для ключа, значение в Tours.items()} # Распечатываем результат распечатать(туры1) ВЫВОД:
{'V0': [[0, 3, 3, 0], [0, 0]], 'V1': [[0, 3, 0, 8, 2, 0], [0 , 3, 8, 0], [0, 0]]} Есть идеи?
Спасибо!
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Гистограмма matplotlib с группами, использующими словарь списков списков
Anonymous » » в форуме Python - 0 Ответы
- 26 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как работает индексация Pytorch со списками списков против списков списков против тензоров
Anonymous » » в форуме Python - 0 Ответы
- 29 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как сортировать словарь со списком объектов DateTime в качестве значения?
Anonymous » » в форуме Python - 0 Ответы
- 7 Просмотры
-
Последнее сообщение Anonymous
-