【问题标题】:Going through a string and see if it contains the second parameter遍历一个字符串,看看它是否包含第二个参数
【发布时间】:2016-10-23 09:14:08
【问题描述】:

您好,我的问题是我想要一个函数,它有两个参数,一个是推文,另一个是主题标签,当且仅当主题标签在推文中时,它将返回 True,否则返回 false。

例子:

contains_hashtags('I like bats #batman', 'batman') 结果为真

contains_hashtags('I like bats #batman', 'bat') 的结果为 False,因为它与 #batman 不同。

到现在为止

def contains_hashtags(tweet, hashtag):
tweet.split(" ")
for char in tweet:
    if tweet.startswith(hashtag):
        return True
    else:
        return False

我尝试先拆分推文,然后遍历每个字符,看看它是否以主题标签开头

【问题讨论】:

    标签: python loops split boolean


    【解决方案1】:

    split 返回一个字符串数组。字符串是不可变的,意味着你需要重新分配处理后的值(数组),它不会自动更新并替换变量。

    检查拆分数组中的每个单词,是否以# 开头并且是否包含hashtag

    另外,请注意return False 仅在未找到主题标签时出现,因此您可以在所有案例都经过测试并证明错误后使用:

    def contains_hashtags(tweet, hashtag):
        tweet = tweet.split() # ' ' by default
        for word in tweet:
            if word.startswith('#') and hashtag in word:
                return True
        return False
    

    【讨论】:

    • 在我尝试之后它说'list'对象没有属性'startswith'所以即使在更改了我的tweet = tweet.split()之后我得到了那个错误是否意味着我需要更改我的属性的 tweet.startswith 到列表(tweet.startswith)?
    • @naruto321 现在检查一下
    • 好的,非常感谢,只是想知道每当我使用 startwith() 时,if 语句必须是推文中的 for ****?
    • 因为我了解到,如果 string = 0 返回 False,通常它类似于字符串中的单词
    • tweet 是一个字符串数组。您需要检查for word in tweet 以迭代其中的所有字符串。
    猜你喜欢
    • 2014-02-23
    • 1970-01-01
    • 1970-01-01
    • 2018-02-02
    • 2017-03-05
    • 2015-12-30
    • 1970-01-01
    • 2011-04-20
    • 1970-01-01
    相关资源
    最近更新 更多