У меня есть словарь, где ключ является строкой, а значения ключа представляют собой набор строк, которые также содержат ключ (цепочка слов). У меня возникли проблемы с поиском максимальной глубины графа, который был бы множеством с большинством элементов в словаре, и я попробую распечатать этот макс граф.Поиск максимальной глубины набора в словаре
Прямо сейчас мой код печатает:
{'DOG': [],
'HIPPOPOTIMUS': [],
'POT': ['SUPERPOT', 'HIPPOPOTIMUS'],
'SUPERPOT': []}
1
Где 1 моя максимальная глубина словаря. Я ожидал, что глубина будет равна двум, но, по-видимому, на графике «POT» есть только 1 слой
Как найти максимальное значение, заданное из набора ключей в словаре?
import pprint
def dict_depth(d, depth=0):
if not isinstance(d, dict) or not d:
return depth
print max(dict_depth(v, depth+1) for k, v in d.iteritems())
def main():
for keyCheck in wordDict:
for keyCompare in wordDict:
if keyCheck in keyCompare:
if keyCheck != keyCompare:
wordDict[keyCheck].append(keyCompare)
if __name__ == "__main__":
#load the words into a dictionary
wordDict = dict((x.strip(), []) for x in open("testwordlist.txt"))
main()
pprint.pprint (wordDict)
dict_depth(wordDict)
testwordlist.txt:
POT
SUPERPOT
HIPPOPOTIMUS
DOG
http: // stackoverflow.com/questions/9538875/recursive-depth-python-dictionary https://www.google.ca/search?q=python+max+depth+of+a+set+in+a+dictionary&ie=utf-8&oe = utf-8 & gws_rd = cr & ei = UwscVq6PK8HReo3BsvAI – BAE