首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >字典对象搜索

字典对象搜索
EN

Stack Overflow用户
提问于 2019-03-21 16:57:13
回答 1查看 68关注 0票数 1

我已经从REST API中获取了超过8000条记录。现在我需要搜索这个数据集。

我的数据集如下所示:

代码语言:javascript
运行
复制
  data = {
        key: [ 
              {name:'foo1', 'age':22},
              {name:'foo2', 'age':23},
        ]}

我需要一个新的搜索技术或算法在python上没有O(n)的复杂性,当我使用这段代码;

代码语言:javascript
运行
复制
for data in datas:
  if data["name"] == "foo1":
     calculate_func(data)

如何优化搜索算法的复杂度?

EN

回答 1

Stack Overflow用户

发布于 2019-03-21 17:37:45

如果您的数据集与您发布的数据集完全相同,那么您可以创建一个{key:value}字典,其中key将是名称,value将是年龄。就像这样-

代码语言:javascript
运行
复制
dict = {
'foo1': 22, 
'foo2': 23
}

然后,如果您可以直接使用搜索词来访问与该名称对应的值。就像-

代码语言:javascript
运行
复制
age = dict[searchTermName]

以这种方式,您只需要O(n)时间来准备数据集,但对于每次搜索,您将需要O(1)时间。

现在,如果你的数据集比这更复杂,你可以使用prefix trie。这将是最有效的方法之一。在每次搜索中,最坏情况的时间复杂度将为O(search_term_length)。尽管它也有初始化成本。但这只是一次时间成本(O(n * key_length))。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55276753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档