python版本 字典樹的構造和測試

2021-10-23 12:18:55 字數 1090 閱讀 1465

最近在看中文分詞基數, 其中涉及到了字典樹的知識, 研究了一下:

class trie(object):

class node:

def __init__(self):

self.is_word = false # 是否乙個單詞的結尾

self.dict = dict()

def __init__(self):

self.root = trie.node()

def insert(self, word):

node = self.root

for c in word:

if c not in node.dict:

node.dict[c] = trie.node()

node = node.dict[c]

node.is_word = true

def search(self, word):

node = self.root

for c in word:

if c not in node.dict:

return false

else:

node = node.dict[c]

return node.is_word

def startswith(self, prefix):

node = self.root

for c in prefix:

if c not in node.dict:

return false

else:

node = node.dict[c]

return true

測試:

trie= trie()

trie.insert("雷峰")

trie.insert("雷峰塔")

print(trie.search("雷"))

print(trie.search("雷峰"))

print(trie.search("雷峰塔"))

# 結果

false

true

true

參考 

Trie 字典樹 的遞迴版本

private void insert node node,string word,int index 在以node為根的trie樹中插入以index開始的子串 word index,end private boolean contains node node,string word,int ind...

python的字典樹

coding utf 8 字典樹測試 python沒有指標,但是可以用巢狀字典來實現樹結構.對於非ascii的單詞,統一用unicode編碼來插入與搜尋.classtrienode 這是節點 def init self 定義節點的資料結構,並初始化,設定標誌位判斷是否單詞是否是完整的存在於字典樹中 ...

Python字典中的值為列表或字典的構造例項

1 值為列表的構造例項 dic 程式設計客棧 dic.setdefault key,append value 示程式設計客棧例如下 www.cppcns.com dic.setdefault a append 1 dic.setdefault a append 2 dic 2 值為字典的構造例項 d...