当前位置: 首页 > 知识库问答 >
问题:

如何基于字典列表中的另一个值高效地查找字典值

漆雕正奇
2023-03-14

我有一个非常大(约10万)的字典列表:

[{'sequence': 'read the rest of this note', 'score': 0.22612378001213074, 'token': 3805, 'token_str': 'note'}, {'sequence': 'read the rest of this page', 'score': 0.11293990164995193, 'token': 3674, 'token_str': 'page'}, {'sequence': 'read the rest of this week', 'score': 0.06504543870687485, 'token': 1989, 'token_str': 'week'}]

给定一个令牌ID(例如1989),我如何以有效的方式找到相应的分数?我必须为每个列表多次这样做(我有几个这样的大列表,每个列表我有几个令牌ID)。

我目前正在遍历列表中的每个词典,检查ID是否与我的输入ID匹配,如果匹配,我将获得分数。但是速度很慢。


共有1个答案

尚俊楠
2023-03-14

因为您必须多次搜索,所以可以创建一个以令牌为密钥的字典:

a = [{'sequence': 'read the rest of this note', 'score': 0.22612378001213074, 'token': 3805, 'token_str': 'note'}, {'sequence': 'read the rest of this page', 'score': 0.11293990164995193, 'token': 3674, 'token_str': 'page'}, {'sequence': 'read the rest of this week', 'score': 0.06504543870687485, 'token': 1989, 'token_str': 'week'}]

my_dict = {i['token']: i for i in a}

创建dict需要一些时间,但每次搜索后都会出现O(1)

 类似资料:
  • 问题内容: 我该如何列出这样的词典列表。 …变成这样的单个字典: 问题答案: 这适用于任何长度的字典: 作为一个理解:

  • 问题内容: 我有一个Python字典列表,如下所示: 我想实现的是保持,和独特的。 例如,如果我们有3项具有相同和,但有3个不同的值 ,,,则操作之后,它应该是和。 我该如何实现? ================================================== =============更新: 好的,感谢Anand的出色回答,它可以完美运行。但是,我还有一个问题。 假设我们有

  • 问题内容: 这是基本的内容,但是我对VBA和Word / Access对象模型不熟悉。 我有一个大约117000条记录的两列数据库。列是“姓”和“计数”。我希望用户能够在文本框中键入SMITH并单击“提交”。然后,我想运行类似 并以字符串形式返回table.count的值。 感觉这应该是五到六行代码(我有,但不会发布),但是我显然缺少了一些东西! 干杯 问题答案: 首先,请小心命名“ count”

  • 问题内容: 需要在某种类型的查找表中放入大约1000万个值,所以我想知道列表或字典哪个更有效? 我知道你可以为这两种方法执行以下操作: 和 我的想法是,该命令将更快,更高效。 谢谢你的帮助。 编辑1 我正在尝试做的更多信息。 欧拉问题92。我正在查找表,以查看计算出的值是否已经准备好了。 编辑2 查找效率。 编辑3 没有与值相关的值…那么集合会更好吗? 问题答案: 速度 关于数据结构中的项目数,列

  • 问题内容: 如何从字典中检索前3个列表? 预期结果: 问题答案: 用途: 计数器对象还具有其他各种优点,例如,使收集计数变得非常简单。

  • 问题内容: Swift中的数组支持+ =运算符,可将一个数组的内容添加到另一个数组。有没有简单的方法可以做到这一点的字典? 例如: 问题答案: 您可以为定义运算符,例如