我有以下三个列表。
mylist = [[5274919, ["my cat", "little dog", "fish", "rat"]],
[5274920, ["my cat", "parrot", "little dog"]],
[5274991, ["little dog", "fish", "duck"]]]
myconcepts = ["my cat", "little dog"]
hatedconcepts = ["rat", "parrot"]
Run Code Online (Sandbox Code Playgroud)
对于 中的每个概念myconcepts,我想使用mylist. 然后hatedconcepts从中取出。所以,我的输出应该如下所示。
{"my cat": [("my cat", 2), ("little dog", 2), ("fish", 1)],
"little dog": [("little dog", 3), ("my cat", 2), ("fish", 2), ("duck", 1)]}
Run Code Online (Sandbox Code Playgroud)
我正在使用此代码来做到这一点。
import collections
myoutput = []
for concept in myconcepts:
mykeywords = []
for item in mylist:
if …Run Code Online (Sandbox Code Playgroud) 如果我有一组标签(<100)和一组对象(~25000),其中每个对象都有一些标签的子集,你知道一个现有的数据结构,可以快速检索那些满足标签的布尔函数的对象?
标签和对象的添加/删除不需要特别快,但是应该选择具有满足布尔函数的标签的那些对象.
现在我已经写下了我的问题,看起来好像我正在描述一个内存数据库,但最初我正在考虑一些二进制树状结构的对象,对于每个分支,采用左/右分支将相当于决定有/没有一些标签.但这不会允许不关心标签?我问,因为我想知道这是否已经完成,并发现很难谷歌的数据结构.
我以三种不同的方式解决问题,其中两种是递归的,我自己也会记住它们.另一个不是递归的,而是使用math.factorial.我需要知道是否需要为其添加显式的memoization.
谢谢.