【发布时间】:2021-04-16 13:39:58
【问题描述】:
我的问题有点牵强,但我会尽量表达清楚。
我有两个包含不同字典的 python 文件。
在文件science.py中字典的结果如下:
dict1 = { "microbiome": {
"lang": "en",
"lemmatizer": "microbiome",
"Wikidata": "http://www.wikidata.org/entity/Q1330402"
"DBpedia": "http://dbpedia.org/resource/Microbiota"
}, "teaching innovation": {
"lang": "en",
"lemmatizer": "innovación docente",
"Wikidata": null,
"DBpedia": null
},
......
}
这个字典结构的内容是建立在一个我称之为process (word)的函数中。
compact.py文件的输出如下:
dict2 = { http://dbpedia.org/resource/Microbiota :[
{'keyword': 'Microbiota', 'language': 'ca'},
{'keyword': 'Microbiota', 'language': 'en'},
{'keyword': 'Microbioma', 'language': 'es'}],
'teaching innovation': [{'keyword': 'Semantics',
'language': 'en'},
{'keyword': 'Semàntica', 'language': 'ca'},
{'keyword': 'Semántica lingüística',
'language': 'es'}],
.... }
该词典结构的内容是通过一个名为query_kw (uri) 的函数构建的,其中对DBpedia 页面进行查询以从uri 中获取单词的翻译。这会以字典的形式返回一个包含单词不同翻译的列表。
正如在dict2 中看到的那样,它包含一个单词的翻译以及它们所使用的语言。我要做的是检查来自dict1 的单词是否在 dict2 中找到。
在我上面放的小例子中,你可以看到。如果我们查看dict1 的字典键是“微生物组”,那么我必须检查它是否在 dict2 的字典列表中。如果没有找到,则以与其他相同的方式将其添加到dict2 列表中({'keyword': microbiome, 'language': 'en'})。
那么结果必须如下:
dict2 = { http://dbpedia.org/resource/Microbiota :[
{'keyword': 'Microbiota', 'language': 'ca'},
{'keyword': 'Microbiota', 'language': 'en'},
{'keyword': 'Microbioma', 'language': 'es'},
{'keyword': 'microbiome', 'language': 'en'}],
'teaching innovation': [{'keyword': 'Semantics',
'language': 'en'},
{'keyword': 'Semàntica', 'language': 'ca'},
{'keyword': 'Semántica lingüística',
'language': 'es'}],
{'keyword': 'teaching innovation',
'language': 'en'}],
.... }
我尝试过的方法如下(我知道这不是最佳的,但我想知道我该怎么做):
wrapper = query_kw(uri)
res_keys = process(palabra)
for k in rest_keys.keys():
wrap = {'keyword': rest_keys[k], 'language': rest_keys[k]['language']
for ind in wrapper:
for key, value in wrapper[ind]:
for ky, v in wrap:
if key is not ky and value is not v:
wrapper.append(wrap)
我已经说过,它不美观,也不是最佳的,最重要的是它不能正常工作,但我想不出该怎么做。我希望我已经很好地解释了自己。
【问题讨论】:
标签: python python-3.x list dictionary