Python でリストからリストを削除する

Fariba Laiq 2023年1月30日
  1. Python で remove() メソッドを使用してリスト a からリスト B を削除する
  2. Python で difference() メソッドを使用してリスト a からリスト B を削除する
Python でリストからリストを削除する

Python のリストは、アイテムの順序シーケンスを含むデータ構造です。リストに対して多くの操作を実行できます。リスト A からリスト B を削除したいとします。これは、リスト B にも存在するアイテムをリスト A から削除したいという意味です。

たとえば、リスト A にはアイテム ["Blue", "Pink", "Purple", "Red"] が含まれ、リスト B にはアイテム ["Silver", "Red", "Golden", "Pink"]。ここで、リスト A からリスト B を削除すると、これらのアイテムもリスト B に存在するため、出力でリスト A が ["Blue", "Purple"] として取得されます。このタスクは、次のいずれかを使用して実行できます。リストを使用するか、set データ構造で使用可能な difference() 関数を使用する remove() 関数。

Python で remove() メソッドを使用してリスト a からリスト B を削除する

この例では、リスト A で remove() メソッドを使用して、リスト A とリスト B で類似しているアイテムを削除します。リスト A で remove() メソッドを使用して、アイテムがリスト A から削除されるようにします。リスト A ですが、リスト B は以前と同じになります。このコードでは、リスト A のアイテムを繰り返し処理し、そのアイテムがリスト B にも存在するかどうかを確認します。アイテムはリスト A から削除されます。

サンプルコード:

# Python 3.x
list_A = ["Blue", "Pink", "Purple", "Red"]
list_B = ["Silver", "Red", "Golden", "Pink"]
print("List A before:", list_A)
print("List B before:", list_B)
for item in list_A:
    if item in list_B:
        list_A.remove(item)
print("List A now:", list_A)
print("List B now:", list_B)

出力:

List A before: ['Blue', 'Pink', 'Purple', 'Red']
List B before: ['Silver', 'Red', 'Golden', 'Pink']
List A now: ['Blue', 'Purple']
List B now: ['Silver', 'Red', 'Golden', 'Pink']

Python で difference() メソッドを使用してリスト a からリスト B を削除する

リスト A から同様のアイテムを削除する別の方法は、リスト B からそれらを減算することです。set データ構造には、セット A には存在するがセット B には存在しないアイテムを返すメソッド difference() があります。2つのセット間で一意であるセット A の異なるアイテムのみを返します。ただし、このメソッドは set で使用できるためです。

したがって、このコードでは、最初に両方のリストをキャストしてセットし、次に set_A.difference(set_B) 関数を適用し、結果をリストデータ型にキャストして結果を list_A に再度格納します。

サンプルコード:

# Python 3.x
list_A = ["Blue", "Pink", "Purple", "Red"]
list_B = ["Silver", "Red", "Golden", "Pink"]
print("List A before:", list_A)
print("List B before:", list_B)
setA = set(list_A)
setB = set(list_B)
list_A = list(setA.difference(list_B))
print("List A now:", list_A)
print("List B now:", list_B)

出力:

List A before: ['Blue', 'Pink', 'Purple', 'Red']
List B before: ['Silver', 'Red', 'Golden', 'Pink']
List A now: ['Purple', 'Blue']
List B now: ['Silver', 'Red', 'Golden', 'Pink']
著者: Fariba Laiq
Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn

関連記事 - Python List