首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >搜索字典关键字字符串,如果包含,则显示该关键字值

搜索字典关键字字符串,如果包含,则显示该关键字值
EN

Stack Overflow用户
提问于 2018-02-13 04:14:36
回答 2查看 1.2K关注 0票数 0

我正在尝试让我的程序读取一条tweet,并通过查找我的字典在该tweet中查找公司名称。如果它找到一个公司名称,我希望它返回连接到该公司名称的滚动条。当字典键是一个单词时,我可以让它工作,但它不会显示它是一个像中国联通或EXPRESS脚本那样的多单词键。有什么建议吗?我知道拆分推文很难搜索多个单词的字符串,但这是我唯一能让它适用于像FACEBOOK和GOOGLE这样的单单词公司名称的方法。谢谢,这是我的代码。(输入只是推文,我现在只是手动输入它们,直到我弄清楚如何让它工作)

代码语言:javascript
复制
dictionary = 
{'apple':'AAPL',
'google':'GOOG',
'alphabet':'GOOGL',
'microsoft':'MSFT',
'amazon':'AMZN',
'facebook':'FB',
'express scripts':'ESRX',
'china unicom':'CHU'}

data = "Google is in talks to acquire China Unicom"
tweet = data.lower()

if any(word in tweet for word in dictionary.keys()):
    for x in tweet.split():
        if x in dictionary.keys():
            print(dictionary[x])

我正在寻找的输出将是GOOG和CHU,但我只得到GOOG。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-13 04:55:24

我认为你在寻找一个有条件的理解:

代码语言:javascript
复制
dictionary = {'apple':'AAPL',
'google':'GOOG',
'alphabet':'GOOGL',
'microsoft':'MSFT',
'amazon':'AMZN',
'facebook':'FB',
'express scripts':'ESRX',
'china unicom':'CHU'}

data = 'Google is in talks to acquire China Unicom'

tweet = data.lower()

found = (dictionary[key] for key in dictionary.keys() if key in tweet)

for item in found:
    print(item)

输出:

代码语言:javascript
复制
GOOG
CHU
票数 1
EN

Stack Overflow用户

发布于 2018-02-13 04:39:56

如果只需要打印连接到该公司名称的自动收报机,则可以使用:

代码语言:javascript
复制
dictionary = 
{'apple':'AAPL',
'google':'GOOG',
'alphabet':'GOOGL',
'microsoft':'MSFT',
'amazon':'AMZN',
'facebook':'FB'}

data = input()
tweet = data.lower()

for key in dictionary.keys():
    if key in tweet:
        print(dictionary[key])

无论输入的单词有多少,它都会为字典中的所有关键字运行,并检查是否与推文匹配,如果为真,则打印自动收报机

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

https://stackoverflow.com/questions/48754806

复制
相关文章

相似问题

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