相关疑难解决方法(0)

patricia尝试的python实现

四处寻找尝试的 python 实现,以便我能够理解它们是什么以及它们如何工作,我遇到了 Justin Peel 的patricia trie并发现它非常有指导意义:它足够简单,对于像我这样的新手来说,可以玩它并且从中学习。

但是,我认为我不明白有些事情:

使用贾斯汀的类 patricia() 因此:

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

我得到一个字典,看起来像这样:

>>> p._d
{'b': ['a', {'r': ['', {}], 'z': ['', {}]}], 'f': ['oo', {}]}
Run Code Online (Sandbox Code Playgroud)

addWord() 和 isWord() 按预期工作,但 isPrefix() 显示以下行为让我感到困惑:

>>> p.isPrefix('b')
True
>>> p.isPrefix('f')
True
>>> p.isPrefix('e')
False
Run Code Online (Sandbox Code Playgroud)

不错,符合预期;进而

>>> p.isPrefix('ba')
True
Run Code Online (Sandbox Code Playgroud)

也不错,但是:

>>> p.isPrefix('bal')
True
Run Code Online (Sandbox Code Playgroud)

此外:

>>> p.isPrefix('ballance')
True
>>> p.isPrefix('ballancing act')
True
Run Code Online (Sandbox Code Playgroud)

这里有什么我不明白的吗?

python patricia-trie

5
推荐指数
1
解决办法
3934
查看次数

Python:最佳字典实现

我有几个python脚本,我在字典中存储5-10万字符串键值对,我查询这个字典大约5-10万次.我注意到python dict表现不佳.是否有任何其他实现最适合字符串键.

编辑:

我有两个大的人名列表,我想匹配它们,所以我把其中一个作为参考列表,并尝试对第二个列表中的每个名称应用不同的启发式,以确定是否存在于第一个列表中.因此,我必须在第二个列表中为每个名称查询2-3次.希望,这是有道理的.

python performance

5
推荐指数
1
解决办法
960
查看次数

在Python中将一串数字键分成单个数字键

我想翻开以下字典:

dictionary = {
    4388464: ['getting']
    827862 : ['Taruma', 'Varuna']
    ...
}
Run Code Online (Sandbox Code Playgroud)

成:

dictionary = {
    4: {3: {8: {8: {4: {6: {4: {'words': ['getting']}}}}}}}
    8: {2: {7: {8: {6: {2: {'words': ['Taruma', 'Varuna']}}}}}}
    ...
}
Run Code Online (Sandbox Code Playgroud)

这将允许我使用字典:dictionary[8][2][7][8][6][2]['words']而不是:dictionary[827862].

python dictionary

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

标签 统计

python ×3

dictionary ×1

patricia-trie ×1

performance ×1