Comprehensions in Python are a concise syntax for describing lists, sets or dictionaries in a declarative or functional style. This short-hand is readable and expressive, meaning that comprehensions are very effective at communicating intent to human readers. Some comprehensions almost read like natural language, making them nicely self-documenting.
As hinted at above, a list comprehension is a short-hand way of creating a list. It's an expression using a succinct syntax that describes how list elements are defined. Comprehensions are much easier to demonstrate than they are to explain, so let's bring up a Python REPL. First we'll create a list of words by splitting a string:
>>> words = "If there is hope it lies in the proles".split() >>> words ['If', 'there', 'is', 'hope', 'it', 'lies', 'in', 'the', 'proles']
Now comes the list comprehension. The comprehension is enclosed in square brackets just like a literal list, but instead of literal...