Pythonで2つのリストを比較し、同じ要素と異なる要素を取得 | プログラミング学習 初心者向け入門ガイド

ホーム › >>

Pythonで2つのリストを比較し、同じ要素と異なる要素を取得

記事掲載:https://laptrinhcanban.com/ja

Python で 2 つのリストを比較する方法について説明します。このレッスンの後、python で 2つのリストを比較する方法と、python で 2 つのリスト間で同じ要素と異なる要素を取得する方法を学習します。

Python で 2 つのリストを比較するには、次の 4 つの方法があります。

  • 演算子 == および != : Python で 2 つのリストが同じかどうかを確認します
  • 演算子 <、<=、>、>= : Python の 2 つのリスト間で大小を比較します
  • python set() function : 2 つのリストを比較し、python で同じ要素を取得する
  • python set() function : 2 つのリストを比較し、python で異なる要素を取得する

これらの方法については、以下で説明します。

Pythonで2つのリストを比較する

Python で 2 つのリストを比較するには、Python で等値比較や大小比較などの比較演算子を使用します。

Python で 2 つのリストが同じかどうかを確認する | 演算子 == および !=

Python で 2 つのリストが同じかどうかを確認するには、等値演算子を使用します。2 つのリストの要素の値がすべて同じであれば、値 True が返されます。例えば:

print(["Red", "Blue"] == ["Red", "Blue"])
#> True
print(["Red", "Blue"] != ["Red", "Blue"])
#> False
print(["Red", "Blue"] == ["Red", "Blue", "White"])
#> False
print(["Red", "Blue"] != ["Red", "Blue", "White"])
#> True

数値要素を持つ 2 つのリストの比較に似ています。

numlist1 = [0,1,2,3]
numlist2 = [0,1,2,3]
numlist3 = [4]

print(numlist1 == numlist2)
#>> True

print(numlist1 == numlist3)
#>> False

Python で 2 つのリストを比較して同じかどうかを確認する場合、2 つのリストの要素の順序に注意する必要があることに注意してください。2 つのリストの要素の値が同じでも、2 つのリストの要素の順序が異なる場合、2 つのリストは異なると見なされます。

print(["Red", "Blue"] == ["Red", "Blue"])
#> True

print(["Red", "Blue"] == ["Blue", "Red"])
#> False

Python で 2 つのリストの大小を比較する | 演算子 <、<=、>、>=

Python で大小比較を使用して 2 つのリストを比較する場合、2 つのリストで異なる値を持つ最初の要素が比較に使用されます。

次に、2 つのリストの要素のデータ型に応じて、Python での 2 つのリストの比較は、Pythonでの 2 つの文字列の比較またはPythonでの 2 つの数値の比較などに変換されます。

たとえば、次のように、string 型の要素を持つ 2 つのリスト間で大小を比較します。

print(["red", "blue", "green"] > ["red", "blue", "white"])
#> False

上記の 2 つのリストの比較は、次のように 2 つの文字列の Unicode コード ポイント (Unicode コード ポイント) を比較することにより、実際には 2 つの Python 文字列の比較に変換されます。

print( "green" > "white")
#>> False

Python で型の要素を持つ 2 つのリスト間で大小を比較する場合も同様です。

numlist1 = [0,1,2,3]
numlist2 = [0,1,5,3]

print(numlist1 <= numlist2)
#>> True

上記の 2 つのリストの比較は、実際には次のように 2 つの Python 数値の比較に変換されます。:

print( 2 <=  5)
#>> True

異なるデータ型の 2 つのリストで最初の要素の値が異なる場合、それらを比較できない可能性もあります。
例えば:

numlist = [0,1,2,3]
mixlist = [0,1,'Bob',3]
print(numlist1 <= numlist2)

この時点で、上記の 2 つの python リストの比較は文字列と数値の比較 (2 と ‘Bob’ の比較) に戻るため、次のように TypeError が返されます。u:

Traceback (most recent call last):
File "Main.py", line 3, in <module>
print(numlist <= mixlist)
TypeError: '<=' not supported between instances of 'int' and 'str'

Python で 2 つのリストを比較して同じ要素を取得する | set() 関数 python

Python には、2 つのリスト間で同じ要素を直接比較して取得するのに役立つ関数やメソッドはありません。

Pythonで 2 つのリストを比較して同じ要素を取得するには、与えられた 2 つのリストをset型に変換し、&演算子で2つのセットの交差を求め、同じ要素を見つける必要があります。

リストをセット型に変換すると、比較する前に Python リスト内の重複する要素を削除するのに役立つ別の効果もあります。

それでは、Python で 2 つのリストを比較し、それらの間で同じ要素を取得する具体的な例を次のように見ていきましょう。

l1 = [0,1,2,3,'Bob']
l2 = [0,1,5,3]
l3 = [0,1,'Bob',3]

print( set(l1) & set(l2) )
#>> {0, 1, 3}

print( set(l1) & set(l3) )
#>> {0, 1, 3, 'Bob'}

print(type(set(l1) & set(l3)))
#>> <class 'set'>

与えられた 2 つのリスト間で同じ要素を含む結果セットを取得したら、for ループを使用して結果セット内の要素を取得できます。インデックスがsetに存在しないため、要素が取得されて画面に出力される順序は、実行中に異なる場合があることに注意してください。

l1 = [0,1,2,3,'Bob']
l2 = [0,1,'Bob',3]

common_s = set (l1) & set(l2)
for i in common_s:
print(i)
#>> 0
#>> 1
#>> 3
#>> Bob

結果セットの要素数をカウントする len() 関数を使用して、2 つの Python リスト間の重複の数を見つけることもできます。例えば:

l1 = [0,1,2,3,'Bob']
l2 = [0,1,'Bob',3]
commmon_count = len( set(l1) & set(l2) )
print(commmon_count)
#>> 4

次の例のように、Python で set() 関数と list() 関数を使用して、結果のセットをリスト型に変換し、元の 2 つのリストと同じ要素を含む新しいリストを取得することもできます。

l1 = [0,1,2,3,'Bob']
l2 = [0,1,'Bob',3]

common_l = list( set (l1) & set(l2) )

print(common_l[2])
#>> Bob

同様に、2 つのリストを比較する場合、次のように 3 つ以上のリストを比較して、Python で同じ要素を見つけることもできます。

l1 = [0,1,2,3,'Bob']
l2 = [0,1,5,3]
l3 = [0,1,'Bob',3]
l1_l2_l3 = set(l1) & set(l2) & set(l3)
print(l1_l2_l3)
#>> {0, 1, 3}

Python で 2 つのリストを比較して異なる要素を取得する | set() 関数 python

Python には、2 つのリスト間で異なる要素を直接比較して取得するのに役立つ関数やメソッドはありません。

Pythonで 2 つのリストを比較して異なる要素を取得するには、与えられた 2 つのリストをセット タイプに変換し、2つの間の^演算子を見つけることでそれらの違いを見つける必要があります。

リストをセット型に変換すると、比較する前に Python リスト内の重複する要素を削除するのに役立つ別の効果もあります。

ここでは、次のように python で 2 つのリストを比較し、それらの間の異なる要素を取得する具体的な例を示します。

l1 = [0,1,2,3,'Bob']
l2 = [0,1,5,3]
l3 = [0,1,'Bob',4]

print( set(l1) ^ set(l2) )
#>> {2, 5, 'Bob'}

print( set(l1) ^ set(l3) )
#>> {2, 3, 4}

print(type(set(l1) ^ set(l3)))
#>> <class 'set'>

与えられた 2 つのリスト間で異なる要素を含む結果セットを取得したら、 for ループを使用して結果セット内の要素を取得できます。インデックスがセットに存在しないため、要素が取得されて画面に出力される順序は、実行中に異なる場合があることに注意してください。

l1 = [0,1,2,3,'Bob']
l2 = [0,1,'Bob',4]

common_s = set (l1) ^ set(l2)
for i in common_s:
print(i)
#>> 2
#>> 3
#>> 4

len() 関数を使用して、結果セット内の要素の数をカウントすることにより、2 つの Python リスト間で異なる要素の数を見つけることもできます。例えば:

l1 = [0,1,2,3,'Bob']
l2 = [0,1,5,3]
commmon_count = len( set(l1) ^ set(l2) )
print(commmon_count)
#>> 3

次の例に示すように、Python で set() 関数と list() 関数を使用して、結果のセットをリスト型に変換し、元の 2 つのリストの異なる要素を含む新しいリストを取得することもできます。

l1 = [0,1,2,3,'Bob']
l2 = [0,1,'Bob',4]

common_l = list( set (l1) ^ set(l2) )

print(common_l[2])
#>> 4

まとめ

上記 Kiyoshi は、python で 2 つのリストを比較する方法について説明しました。レッスンの内容をよりよく理解するために、今日の例を書き直す練習をしてください。

そして、次のレッスンで Python の知識についてさらに学びましょう。

URL Link

https://laptrinhcanban.com/ja/python/nhap-mon-lap-trinh-python/list-trong-python/so-sanh-2-list-trong-python/

この記事は役立つと思ったらいいね!とシェアをお願いします
">

ホーム  › >>

Profile
きよしです!笑

Author: Kiyoshi (Chis Thanh)

Kiyoshi was a former international student in Japan. After graduating from Toyama University in 2017, Kiyoshi is currently working as a BrSE in Tokyo, Japan.