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を組み合わせて柔軟に対応できます。