Pythonでリストから空文字列を削除するには、いくつかの方法があります。最も一般的なのはリスト内包表記やfilter()関数を使う方法です。

リスト内包表記を使った削除

以下のコードはリスト内包表記を使って空文字列を削除する方法です。

strings = ["first", "", "second"]
cleaned = [x for x in strings if x]
print(cleaned)  # 結果: ['first', 'second']

この方法は非常にシンプルで効率的です。if x部分で空文字列をチェックし、Trueの場合にのみリストに含めます。

filter関数を使う方法

filter()関数を使うと、リストから空文字列を削除することもできます。Noneを渡すと、空の要素が除外されます。

strings = ["first", "", "second"]
cleaned = list(filter(None, strings))
print(cleaned)  # 結果: ['first', 'second']

空白のみの文字列を削除する方法

空白だけの文字列も削除したい場合は、str.stripを使います。

strings = ["first", "", " ", "second"]
cleaned = list(filter(str.strip, strings))
print(cleaned)  # 結果: ['first', 'second']

結論

リストから空文字列を削除するには、リスト内包表記が最もPythonicで読みやすい方法です。特定の要件がある場合は、filter()str.stripを組み合わせて柔軟に対応できます。