Как мне узнать, является ли значение определенного ключа в моем словаре словарем, чтобы я мог рекурсивно решать вопросы программирования? - PullRequest
0 голосов
/ 25 марта 2019

Итак, я хочу убедиться, что конкретное значение ключа является примитивным типом данных, т.е. не словарем. Если это словарь, я хочу рекурсивно проверять, пока не достигну конца. (базовый регистр: словарь в значениях отсутствует) Допустим, у меня есть этот код

dict ={ 
    "Roll No" : "1",
    "Car"     : {
         "Ferrari"  : "12",
         "Pontiac"  : "15"`
     },
     "Budget" : "3"
   }

Как получить "Car" в качестве ключа, который имеет тип данных значений для словаря?

А как мне получить доступ к подсловарю?

{ "Car":{
    "Ferrari":"12",
   "Pontiac":"15"
   },
} 

1 Ответ

0 голосов
/ 25 марта 2019

Вы можете использовать функцию Python type(), чтобы определить, является ли элемент словарем, и, следовательно, когда выполнять рекурсивный анализ:

searchDictionary( haystack, needle ):
    for key in haystack.keys():
        if type( haystack[key] ) is dict:
            searchDictionary( haystack[key], needle )
        elif type( haystack[key] ) is str:
            # TODO - match string
            if ( haystack[key] == needle ):
                print( "Found at "+str(key) )
        elif type( haystack[key] ) is int:
            # TODO - match integer
            pass

Существует множество других способов перебора словаря, но я выбралэтот метод иллюстрирует ответ в читабельной форме.

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