小编Mos*_*ber的帖子

尺寸的差异来自哪里?

我创建了一系列的各种单词来存储英语词典中的所有单词(而不是定义).关键在于我可以获得仅包含给定范围内的字母的所有单词.

包含所有单词的文本文件大约为2.7 mb,但在创建树并使用pickle将其写入文件后,文件大于33 mb.

这种尺寸差异来自哪里?我以为我会通过不需要为不同的单词存储相同字母的多个副本来节省空间,例如对于单词app和apple我只需要5个节点,对于 - > p - > p - > l - > e .

我的代码如下:

import pickle

class WordTrieNode:
    def __init__(self, nodeLetter='', parentNode=None, isWordEnding=False):
        self.nodeLetter = nodeLetter
        self.parentNode = parentNode
        self.isWordEnding = isWordEnding
        self.children = [None]*26 # One entry for each lowercase letter of the alphabet

    def getWord(self):
        if(self.parentNode is None):
            return ''

        return self.parentNode.getWord() + self.nodeLetter

    def isEndOfWord(self):
        return self.isWordEnding

    def markEndOfWord():
        self.isWordEnding = True

    def insertWord(self, word):
        if(len(word) == 0):
            return

        char = word[0] …
Run Code Online (Sandbox Code Playgroud)

python algorithm data-structures

2
推荐指数
1
解决办法
77
查看次数

标签 统计

algorithm ×1

data-structures ×1

python ×1