简体   繁体   中英

counting words from a dictionary?

My function is supposed to have:

  • One parameter as a tweet.
    • This tweet can involve numbers, words, hashtags, links and punctuations.
  • A second parameter is a dictionary that counts the words in that string with tweets, disregarding the hashtag's, mentions, links, and punctuation included in it.

The function returns all individual words in the dictionary as lowercase letters without any punctuation.

If the tweet had Don't then the dictionary would count it as dont .

Here is my function:

    def count_words(tweet, num_words):
''' (str, dict of {str: int}) -> None
Return a NoneType that updates the count of words in the dictionary.

>>> count_words('We have made too much progress', num_words)
>>> num_words
{'we': 1, 'have': 1, 'made': 1, 'too': 1, 'much': 1, 'progress': 1}
>>> count_words("@utmandrew Don't you wish you could vote? #MakeAmericaGreatAgain", num_words)
>>> num_words
{'dont': 1, 'wish': 1, 'you': 2, 'could': 1, 'vote': 1}
>>> count_words('I am fighting for you! #FollowTheMoney', num_words)
>>> num_words
{'i': 1, 'am': 1, 'fighting': 1, 'for': 1, 'you': 1} 
>>> count_words('', num_words)
>>> num_words
{'': 0}
'''

I might misunderstand your question, but if you want to update the dictionary you can do it in this manner:

d = {}
def update_dict(tweet):   
    for i in tweet.split():
        if i not in d:
            d[i] = 1
        else:
            d[i] += 1   
    return d

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM