
【Python】リスト(list)同士の引き算方法を簡単に解説
公開: 更新:Pythonのリスト(list)同士の引き算
【サンプルコード】
list1 = [5, 10, 15, 20, 25]
list2 = [10, 20]
subtracted_list = [item for item in list1 if item not in list2]
print(subtracted_list)
【実行結果】
[5, 15, 25]
リストはPythonにおいて、複数の値を順序付きで格納できるデータ構造です。
上記のコードでは、まずlist1
とlist2
という2つのリストを作成しています。list1
には5から25までの5の倍数が含まれており、list2
には10と20が含まれています。
次にリスト内包表記を使用して、list1
からlist2
に含まれていない要素だけを抽出しています。この表記ではitem
という変数がlist1
の各要素に対して順に適用され、それがlist2
に存在しない場合にのみ新しいリストに追加されます。
今回の方法は、一つのリストから別のリストに含まれている要素を効率的に取り除くのに役立ちます。
最後に、結果となるsubtracted_list
をprint
関数で表示しています。ここでの結果は、list1
からlist2
に含まれていた10と20を取り除いた新しいリスト、すなわち[5, 15, 25]となります。
【PR】『Python』を学べる企業・個人向けのプログラミングコース
セットを用いたリスト(list)同士の引き算
【サンプルコード】
list1 = [3, 6, 9, 12, 15]
list2 = [6, 12]
set_difference = list(set(list1) - set(list2))
print(set_difference)
【実行結果】
[9, 3, 15]
セットの定義として、重複を許さない順序がないデータ構造のことです。
上記のサンプルコードでは、list1
とlist2
という2つのリストを使用しています。リストをセット(集合)に変換することで、セット同士の引き算(差集合)を利用しています。
上記のコードでは、まずlist1
とlist2
をセットに変換し、その後セットの差集合を計算しています。差集合は最初のセットには含まれているが、二番目のセットには含まれていない要素の集合です。
結果として得られたセットを再びリストに変換し、set_difference
という変数に格納しています。print
関数でこの変数を出力すると、list1
からlist2
に含まれていた要素を取り除いた結果が表示されます。
今回の方法は、順序を考慮せずにリストから特定の要素を取り除きたい場合に有効です。
filter関数を使ったリスト(list)同士の引き算
【サンプルコード】
list1 = [1, 2, 3, 4, 5]
list2 = [2, 4]
filtered_list = list(filter(lambda x: x not in list2, list1))
print(filtered_list)
【実行結果】
[1, 3, 5]
上記のコードでは、filter
関数を用いてリストから特定の要素を取り除く方法を紹介しています。filter
関数は、条件に一致する要素のみを新しいリストに含めるために使われます。
今回はラムダ関数(無名関数)を使用しており、list1
の各要素がlist2
に含まれていないかどうかをチェックします。ラムダ関数はlambda x: x not in list2
の形で書かれ、x
はlist1
の各要素を表します。
filter
関数はこの条件に基づき、list1
の要素をフィルタリングし、条件に合致するものだけを新しいリストに含めます。最終的にfiltered_list
として結果が得られ、print
関数で出力されます。
この方法は条件に基づいてリストから要素を選択的に取り除く場合に特に役立つでしょう。
※上記コンテンツの内容やソースコードはAIで確認・デバッグしておりますが、間違いやエラー、脆弱性などがある場合は、コメントよりご報告いただけますと幸いです。
ITやプログラミングに関するコラム
- ChatGPTでプロンプトを使うコツとNG例|シーン別のプロンプト例まで徹底解説
- ChatGPT 4oアップデートで高クオリティな画像生成が可能に!具体例や作り方、プロンプトのコツを紹介
- 【Open AI・Claude】プロンプトジェネレーターの使い方。ChatGPTで活用するコツや利用料金も併せて解説
- 【Python】@(アットマーク)の意味を簡単に解説
- 【Python】match case(match文)で複数条件を処理する方法