首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python,将列表元素与包含元组列表的字典相匹配。

Python,将列表元素与包含元组列表的字典相匹配。
EN

Stack Overflow用户
提问于 2017-09-21 06:44:56
回答 1查看 208关注 0票数 0

我有一本包含日期和词频序列的字典,如下所示:

代码语言:javascript
复制
{
    'Wed Aug 09': [('夏', 49), ('日本', 48), ('海', 39), ('', 33), ('日', 28), ('写真', 25), ('まし', 24), ('', 24), ('️', 23), (' ソフトクリーム', 22)],
    'Thu Aug 10': [('夏', 1010), ('日本', 672), ('暑い', 501), ('海', 379), ('型', 253), ('日', 242), ('人', 223), ('まし', 209), ('い い', 159), ('雨', 149)]
}

在所有这些术语中,我有一个关键字列表,我想总结一下所有的数据:

代码语言:javascript
复制
key_words = ["夏", "海", "暑い", "雨", "秋", "寒い", "台風", "冬"]

我希望我的输出看起来像:

代码语言:javascript
复制
{
    'Wed Aug 09': [('夏', 49), ('海', 39),('暑い', 34), ('雨', 26), ('秋', 23), ('寒い', 15), ('台風', 12), ('冬', 9) ],
    # ...
}

这基本上是从带有元组列表的字典中提取关键字。

我的提取代码如下所示:

代码语言:javascript
复制
result = dict()
for key, value in date_words.items():
    if key_words in date_words[value]:
        result[key] = value
 print(result)

但它会返回一个空的小弟弟。有人能帮帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-21 06:51:31

您正在询问是否存在一个具有相同字符串的list对象。没有,这里有每个元素的元组。您将需要测试该交叉路口。

我会用key_words来代替:

代码语言:javascript
复制
key_words = {"夏", "海", "暑い", "雨", "秋", "寒い", "台風", "冬"}  # use set([....]) in Python 2

并使用列表理解来提取所有匹配的元组:

代码语言:javascript
复制
result = {}
for key, value in date_words.items():
    result[key] = [(k, v) for k, v in value if k in key_words]

这可以进一步合并成字典的理解:

代码语言:javascript
复制
result = {key: [(k, v) for k, v in value if k in key_words]
          for key, value in date_words.items()}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46337149

复制
相关文章

相似问题

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