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'>