list以外でも内包表記できる。

Python2では2.7から、3では3.1からできる。
もともとは3.1での新機能だったが、2.7にバックインポートされた。

setで内包表記

setだから重複要素が省ける。

>>> s = {v for v in 'ABCDABCD' if v not in 'CB'}
>>> print s
set(['A', 'D']) #list内包表記だと['A', 'D', 'A', 'D']
>>> type(s)
<type 'set'>

dictで内包表記

>>> s = {key: val for key, val in enumerate('ABCD') if val not in 'CB'}
>>> s
{0: 'A', 3: 'D'}
>>> type(s)
<type 'dict'>


・参考資料
List comprehension - Wikipedia, the free encyclopedia