内包を使って

組み込み関数 ord を使うと、

>>> help(ord)
Help on built-in function ord in module __builtin__:
ord(...)
    ord(c) -> integer
    
    Return the integer ordinal of a one-character string.

文字 c の ASCII コード(整数値)が得られます。そこで、任意の文字列の各要素(長さ1の文字列)の値を列挙したリストを得るには、

>>> s = []
>>> for e in "ABC": s.append(ord(e))
... 
>>> s
[65, 66, 67]

空のリスト s に対して、メソッド append を使って各要素を追加します。同じことは内包を使うと、次のように簡潔に表現できます。

>>> [ord(e) for e in "ABC"]
[65, 66, 67]

リスト内には、列挙したい各要素を生成する式 ord(e) を指定するとともに、文字列の各要素 e を参照する方法を記述します。制御構造を表わす for をリストに記述できるので、簡潔で見通しの良いコードを記述できるようになります。内包の代わりに、外延で表現すると、

>>> [ord("A"),ord("B"),ord("C")]
[65, 66, 67]

各要素を生成する式を列挙する必要があり、かなり面倒です。
《Note》内包〔comprehension〕が導入されるのに、Python 2.0 まで待たねばなりませんでした。VDM++ では、リストだけでなく、Set/Sequence/Map に対しても、自由に内包を記述できます。さらに、Smalltalk では、内包だけでなく、より包括的な表現が早くから導入されていただけに、待ち焦がれていた機能のひとつです。□
《参考文献》
・/Python-Docs-2.0.1/ref/lists.html#l2h-271