Python | リストから空の値を削除する方法

Python リスト,Python

Python | リストから空の値を削除する方法

Pythonのメソッドを使ってリストから空の値を削除する方法とサンプルコードを紹介しています。

確認環境

Windows11 ローカル
Python python-3.11.1

filter()関数を使ってリストから空の値を削除する

Pythonでリストから空の値を削除するにはfilter()関数を使って実装する事が可能です。
filter()関数は、第1引数に実行するフィルタ関数を、第2引数にフィルタリング対象のリストを指定します。

このコードは以下の手順でリストから空の値を削除しています。

  1. 対象のリストを用意する
  2. filter()関数で値が空かどうかで処理する
  3. list()で結果をリスト型にする

以下のサンプルコードでは、リストから空の値のみを削除した結果を取得しています。

data_list = [ "", "apple", "orange", "", "banana", ""]

# リストから空の値を削除する
new_data_list = list(filter(lambda x: x != "", data_list))

print(new_data_list)

リストに格納される空の値は文字列型の「""」のみです。

for文で判定してリストから空の値を削除する

こちらはfor文でリストを反復し、空かどうかを判定して空の値のない新しいリストを作成するサンプルコードになります。

このコードは以下の手順でリストから空の値を削除しています。

  1. 対象のリストを用意する
  2. 新しいリストの変数を用意する
  3. for文で対象のリストを反復処理する
  4. if文で値が空かどうかを判定する
  5. 空ではない場合、append()メソッドで新しいリストに値を追加する

以下のサンプルコードではif文で値が空ではなかった場合のみ、新しいリストにappend()メソッドで値を追加しています。

data_list = [ "", "apple", "orange", "", "banana", ""]

# リストから空の値を除いたリストを作成する
new_data_list = []
for x in data_list:
	if x != "":
		new_data_list.append(x)

print(new_data_list)
# ['apple', 'orange', 'banana']

また、以下のように記述する事もかのうです。

data_list = [ "", "apple", "orange", "", "banana", ""]

# リストから空の値を除いたリストを作成する
new_data_list = [x for x in data_list if x != ""]

print(new_data_list)
# ['apple', 'orange', 'banana']