May 12th, 2014
Python list comprehensions are by far the simplest and most readable loop expressions that I have worked with. Here’s an example where I have a list of lists of lists (corpus –> documents –> sentences) where I need to remove some items (called stop_words here) from the sentences.
corpus = [[[word for word in sentence if word not in self._stop_words] for sentence in document] for document in corpus]
Notice the array brackets added after each for expression so the program retains the same structure.
Another example, if I have to flatten such a deep list-
return [word for document in self._corpus for sentence in document for word in sentence]