Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 0
Регистрация: 06.05.2014
Сообщений: 84

Непонятная работа кода

07.04.2020, 13:59. Показов 552. Ответов 1

Студворк — интернет-сервис помощи студентам
Добрый день!!!

код выдает
[{'id': 51, 'id_parent': None, 'assembly_type': 'template', 'template': {'id': 52, 'id_parent': 51, 'assembly_type': 'values', 'values': [{'id': 53, 'id_parent': 52, 'assembly_type': 'values', 'values': [...]}]}}]

а должен
[{'id': 51, 'id_parent': None, 'assembly_type': 'template', 'template': {'id': 52, 'id_parent': 51, 'assembly_type': 'values', 'values': [{'id': 53, 'id_parent': 52, 'assembly_type': 'values', 'values': []}]}}]

т.е. идет зацикливание в конце результата 53 содержит в себе 53, но почему?

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
assembly_type = {
        "values": {
            "type": []
        },
        'template': {
            "type": {}
        }
    }
 
 
unfinished_config = [
    {'id': 51, 'id_parent': None, 'assembly_type': 'template'},
    {'id': 52, 'id_parent': 51, 'assembly_type': 'values'},
    {'id': 53, 'id_parent': 52, 'assembly_type': 'values'}]
 
 
conf = []
dict_conf = {}
for param in unfinished_config:
        param[param["assembly_type"]] = assembly_type[param["assembly_type"]]["type"]
        dict_conf[param["id"]] = param
        if param["id_parent"]:
            if param["id_parent"] in dict_conf:
                key = dict_conf[param["id_parent"]]["assembly_type"]
                if type(dict_conf[param["id_parent"]][key]) == list:
                    dict_conf[param["id_parent"]][key].append(param)
                elif type(dict_conf[param["id_parent"]][key]) == dict:
                    dict_conf[param["id_parent"]][key] = param
 
        else:
            conf.append(param)
 
print(conf)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.04.2020, 13:59
Ответы с готовыми решениями:

Во время выполнения кода непонятная ошибка
Поставлена задача написать программу, которая будет служить телефонной книгой. У неё должна быть возможность искать контакт, добавлять...

Непонятная работа PyCharm
- Здравствуйте Любители Python! Доброго всем здоровья! Столкнулся с непонятной работой PyCharm. - Он подсвечивает последнюю скобку...

Непонятная строчка кода
for (p = 0; p < 12; p++) { for (v = 0; v < 50; v++) { if (x == y) { if (v >= 50) x = y; else x = y; break;...

1
Эксперт Python
 Аватар для unfindable_404
693 / 471 / 204
Регистрация: 22.03.2020
Сообщений: 1,051
07.04.2020, 15:27
Минут 15 разглядывал код в поисках ошибки, а потом осенило.
Ну сколько можно говорить о том, что списки изменяемые объекты.
На 3 строке вы создали список и всё. Теперь везде, где вы его присваивали в переменную, не создавался новый, а просто цеплялась ссылка к этому. Потому и рекурсия получилась.

Добавьте этот костыль между 25 и 26 строками.
Python
1
                    dict_conf[param["id_parent"]][key] = []
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.04.2020, 15:27
Помогаю со студенческими работами здесь

Непонятная подсветка кода
Всем привет. Пользуюсь VS2022 + VisualGDB. С недавнего времени началось что-то непонятное при написании кода, а именно, во время ввода...

Непонятная логика кода валидации формы
Добрый день. Есть такая функция: (проверка пустое поле или нет, если пустое - окрасить border красным и вывести рядом сообщение...

Непонятная ошибка при разносе метода из кода класса
Не могу понять от чего происходит ошибка. Создал класс в VS 2008, создал метод демонстрации. Пока этот метод находится в теле класса, всё...

Непонятная ошибка при переводе в кода(безопасного извлечения флешек) с Delphi на С++
Предисловие: делаю попытку сделать безопасное извлечение флешки, перекопал инет,msdn в итоге вот что получилось... делаю на основе...

Непонятная работа XP
всем привет проблема такова: ось загружается, но в ней нельзя запустить ни диспетчер, ни проги\игры, тока текстовые файлы.. вирусов...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru