Pythonで2つの順序付きリストを比較するにはどうすればよいですか?


105

長いリストが1つある場合:myList = [0,2,1,0,2,1]2つのリストに分割します。

a = [0,2,1]
b = [0,2,1]

これらの2つのリストを比較して、それらが同じであるかどうかを確認し、同じ順序にする必要があるという制約付きで確認するにはどうすればよいですか?

2つのリストを並べ替えて比較することを求める質問を見てきましたが、私の特定のケースでは、並べ替えた比較ではなく、同じリスト比較をチェックしています。

回答:


175

古典的な==演算子を使用するだけです:

>>> [0,1,2] == [0,1,2]
True
>>> [0,1,2] == [0,2,1]
False
>>> [0,1] == [0,1,2]
False

同じインデックスの要素が等しい場合、リストは等しいです。その後、注文が考慮されます。


3
これはnumpyのリストで、次のエラーを返すことができますValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
アレックス・レイノルズ

@AlexReynoldsの発言 all(arr1 == arr2)またはでテストする必要があり(arr1 == arr2).all()ます。
フリオ

10

それらが同一であるかどうかだけを確認したい場合は、a == b順序付けを考慮してtrue / falseを与える必要があります。

要素を比較したい場合は、numpyを使用して比較できます

c = (numpy.array(a) == numpy.array(b))

ここで、cには3つの要素を含む配列が含まれます(これらの要素はすべてtrueです)。aとbの要素が一致しない場合、cの対応する要素はfalseになります。


次に、c.all()がTrueかどうかを確認します
プルキットバンサル

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.