はじめに
Python では、2 つのリストや任意の反復可能オブジェクトの差を計算できます。2 つのリストの差は、最初のリストに存在し、2 番目のリストには存在しない要素です。このチャレンジでは、2 つのリストを引数として受け取り、それらの差を返す Python 関数を書く必要があります。
リストの差分
list_difference(a, b) という名前の Python 関数を書きます。この関数は 2 つのリストを引数として受け取り、それらの差分を返します。関数は重複する値をフィルタリングしないものとします。この問題を解決するには、次の手順を辿ることができます。
- 2 番目のリスト
bからセットを作成します。 - 最初のリスト
aに対してリスト内包表記を使用して、先に作成したセット_bに含まれない値のみを残します。 - 結果のリストを返します。
def difference(a, b):
_b = set(b)
return [item for item in a if item not in _b]
difference([1, 2, 3], [1, 2, 4]) ## [3]
まとめ
このチャレンジでは、Python において 2 つのリストの差分を計算する方法を学びました。また、セットとリスト内包表記を使ってこの問題を解決する方法も学びました。これらの知識を使って、より効率的で簡潔な Python コードを書くことができるようになりました。