Выполнение python попыток Патриции

Оглядываясь на реалии реализаций python, чтобы я мог понять, что они представляют и как они работают, я наткнулся на patricia trie Justin Peel и нашел, что это очень поучительно: достаточно просто для одного как нового, поскольку я должен поиграть с ним и учиться у него.

Однако я думаю, что я не понимаю:

используя класс Юстина patricia (), таким образом:

>>> p = patricia() >>> words = ['foo','bar','baz'] >>> for x in words: ... p.addWord(x) 

Я получаю trie как словарь, выглядящий так:

 >>> p._d {'b': ['a', {'r': ['', {}], 'z': ['', {}]}], 'f': ['oo', {}]} 

addWord () и isWord () работают как ожидалось, но isPrefix () показывает следующее поведение, которое меня озадачивает:

 >>> p.isPrefix('b') True >>> p.isPrefix('f') True >>> p.isPrefix('e') False 

хорошо, как и ожидалось; а потом

 >>> p.isPrefix('ba') True 

также хорошо, но тогда:

 >>> p.isPrefix('bal') True 

и, кроме того:

 >>> p.isPrefix('ballance') True >>> p.isPrefix('ballancing act') True 

Что-то здесь я не понимаю?

  • Как установить в файлы python 3.4 - .whl
  • Как восстановить python на OS X Yosemite после того, как я что-то удалил?
  • Есть ли способ иметь условный файл требований.txt для моего приложения Python на платформе?
  • Использовать Scrapy для обхода локального XML-файла - Запустить адрес локального файла URL-адреса
  • В чем разница между литералом и переменными в Python?
  • Как привязать нажатие кнопки к кнопке в Tkinter
  • Каков интерфейс python для opencv2.fillPoly в качестве входных данных?
  • Python: загрузить текст как объект python
  • One Solution collect form web for “Выполнение python попыток Патриции”

    Я считаю, что ошибка находится в следующем фрагменте кода, на который вы смотрите:

      if w.startswith(node[0][:wlen-i],i): if wlen - i > len(node[0]): i += len(node[0]) d = node[1] return True 

    на самом деле это должно быть:

      if w.startswith(node[0][:wlen-i],i): if wlen - i > len(node[0]): i += len(node[0]) d = node[1] else: return True 
    Python - лучший язык программирования в мире.