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]となります。
セットを用いたリスト(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やプログラミングに関するコラム
- CSSのFlexboxで簡単横並び!基本から応用までサンプルコードも使い紹介
- JavaScriptで位置情報を取得する方法と注意点
- JavaScriptで作る効果的なポップアップとモーダルウィンドウ
- JavaScriptによる要素変更:DOMとスタイル制御
- Font Awesome活用法を紹介!HTMLでアイコンを簡単に追加する方法を解説