هي Trie تدعم Python 2, 3
https://github.com/kmike/datrie
تستخدم للحصول على البادئات وأطول بادئة prefix وأحتجت لتدعيم اللواحق suffixes من أجل مشروع خارجي
كانت التفكير عن طريق كود كالتالي
def suffixes(trie, word): return [x[len(word):] for x in trie.keys(word)]
from string import ascii_lowercase from datrie import Trie t = Trie(ascii_lowercase) #pro, prof, production, producer, product, producers, productivity t[u'pro']=1 t[u'prof']=2 t[u'product']=3 t[u'production']=4 t[u'producer'] = 5 t[u'producers']= 6 t[u'productivity']=7
>>> suffixes(t, u'pro') >>> [u'', u'ducer', u'ducers', u'duct', u'duction', u'ductivity', u'f']
قمت بالتعديل لتستطيع إستخدامها كالتالي
>>> trie.suffixes() [u'pro', u'producer', u'producers', u'product', u'production', u'productivity', u'prof'] >>> trie.suffixes(u'prod') [u'ucer', u'ucers', u'uct', u'uction', u'uctivity']
cpdef suffixes(self, unicode prefix=u''):
"""
Returns a list of this trie's suffixes.
If ``prefix`` is not empty, returns only the suffixes of words prefixed by ``prefix``.
"""
cdef bint success
cdef list res = []
cdef BaseState state = BaseState(self)
if prefix is not None:
success = state.walk(prefix)
if not success:
return res
cdef BaseIterator iter = BaseIterator(state)
while iter.next():
res.append(iter.key())
return res
مكتبة جيدة في كل الأحوال أعطوها تجربة
