DEV Community

nitiwit
nitiwit

Posted on

[python] count words in a text

I recently discovered a one-liner to count the words from a text in python:

text = "Tags help people find your post - think of them as the topics or categories that best describe your post."

from collections import Counter

words = Counter(text)[" "] #19
Enter fullscreen mode Exit fullscreen mode

to put it more accurately, this counts the number of spaces (" ") in a text.

moreover, Counter is a python mapping that creates a dict in which keys are every unique letter from a text, and the corresponding values are the number of occurrences of that letter.

a mapping is an iterable container with a fixed length. this means three things (accordingly):

  1. you can loop through its items
  2. you can check existence of an item using in keyword (e.g., "x" in words)
  3. len(words) returns an integer

in other words, it comes with these dunder methods (again, accordingly):

  1. __getitem__(): can access item using dct["key"] notation
  2. __iter__(): return an iterator object to be used in a for loop
  3. __len__(): defines the behavior of len()

Top comments (0)