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

Рекурсивная функция поиска в словаре

27.05.2020, 01:50. Показов 2744. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Коллеги, прошу помочь.
Имеется словарь
d = {'A': [None], 'B': ['A'], 'C': ['A'], 'D': ['C']}
придумалась такая задача:
ключ в словаре считать за child, а значение - за parent (значение задано списком, т.к. парентов мб несколько)
и написать функцию get(child,parent), которая будет возвращать True, если заданы существующие связи
т.е.
1. get('D','C') - True (эта часть кода работает)
2. get('D','A') - True (т.е не найдя по ключу D значения A, функция должна принять за child С (т.к. С в словаре по ключу D), и отправится смотреть сюда: 'C': ['A'], что даст True)
3. det('D','E') - False, т.к. E нет в словаре и программа должна дойти до 'A': [None], и вернуть False)


Тест 1 программа проходит.
Проблема с тестом 2. Я отладке я вижу, что значения переприсваиваются корректно, но несмотря на справедливость первого if программа уходит в else и все заканчивается None, непонятно откуда взявшимся (мне непонятно).
Подскажите, пожалуйста, где мой код не прав?

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
d = {'A': [None], 'B': ['A'], 'C': ['A'], 'D': ['C']}
def get(child,parent):
    if parent in d[child]:
        return(True)
    else:
        child = d[child][0] #родитель становится ребенком
        if None in d[child]:
            return (False)
        else:
            get(child, parent)
 
 
print(get('D','A'))
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.05.2020, 01:50
Ответы с готовыми решениями:

Рекурсивная функция поиска пути
нужно создать рекурсивную функцию которая ищет путь из Губкина в Дятьково путешествие(белгород,орел,поезд). ...

Рекурсивная функция поиска (под)каталогов
Всем доброго времени суток! Понадобилось мне быстренько сделать простое задание; набросал код, далеко не comilfo, конечно, но мне требуется...

Рекурсивная функция поиска символов '0' в строке
задача в том что дана массив надо найти в строке сколько '0' символов есть после символа 'х'..и по рекурсии.что здесь дополнить? ...

2
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
27.05.2020, 11:26
Цитата Сообщение от Lac Посмотреть сообщение
det('D','E') - False, т.к. E нет в словаре и программа должна дойти до 'A': [None], и вернуть False)
ну так у вас прописано что если None есть в значении то вернуть None. откуда будет False?
Python
1
2
3
4
5
6
7
8
9
10
11
12
d = {'A': [None], 'B': ['A'], 'C': ['A'], 'D': ['C']}
def get(key, val):
    if val in d[key] :
        return True
    elif None in d[key]:
        return None
    return get(d[key][0],val)
 
 
print( get('D','C'))
print(get('D','A'))
print(get('D','E'))
True
True
None
>>>
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
27.05.2020, 11:37
Lac, это ты не про эту задачку и решение?
Рекурсия
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.05.2020, 11:37
Помогаю со студенческими работами здесь

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

Рекурсивная функция поиска минимального элемента матрицы
Найти наименьший элемент каждой строки в заданном двумерном массиве, используя рекурсивную функцию. Заранее всем спасибо.

Рекурсивная функция поиска максимального элемента массива
Написать рекурсивную функцию для вычисления максимального элемента массива из п элементов. выдает ошибки: использована...

Рекурсивная функция поиска минимального элемента в одномерном массиве
Написать рекурсивную функцию для поиска минимального элемента в одномерном массиве.

Рекурсивная функция поиска минимального элемента в одномерном массиве.
Написать рекурсивную функцию для поиска минимального элемента в одномерном массиве.


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru