文字列を要素とするリストにおいて、空の要素を除く方法 リスト内包表記をマスター

文書の処理をpythonでやっているときに、文字を何も含まない要素がリストの中に紛れ込むことがありました。それを除く方法を調べてみました。

何も含まない要素を含むリストを作って試します。

mylist = [”,’a’,”]
print(mylist)

mylist = [i for i in mylist if i != ”]
print(mylist)

結果は

['', 'a', '']
['a']

となり、うまく除去できています。このfor文の使い方は、知らないと絶対に思いつかないと思いますが、慣れればとても便利な方法です。条件の内容を変えることにより、応用範囲が広がります。

[iに関する式 for i in リスト] という構造になっていて、リストの各要素に関してiに関する式であらわされる新しい要素からなるリストを作っています。これはリスト内包表記と呼ばれるみたいです。

リスト内の要素に関して条件を付けたければ、

[iに関する式 for i in リスト if 条件]

という書式になります。このやり方を覚えておくと、リスト内の要素の抽出や加工の際にとても便利。