Wie vergleicht man den Inhalt von zwei Listen von nicht hasbaren Objekten in Python, ohne sich um die Bestellung zu kümmPython

Python-Programme
Anonymous
 Wie vergleicht man den Inhalt von zwei Listen von nicht hasbaren Objekten in Python, ohne sich um die Bestellung zu kümm

Post by Anonymous »

Ich habe zwei Listen von Numpy -Arrays, und ich möchte überprüfen, ob die beiden Listen den gleichen Satz von Numpy -Arrays haben. Wenn sie die gleichen Arrays in einer anderen Reihenfolge haben, möchte ich immer noch, dass es wahr zurückgibt. Lassen Sie uns beispielsweise < /p>
festlegen

Code: Select all

list_1 = [numpy.array([1, 2]), numpy.array([3])]
list_2 = [numpy.array([3]), numpy.array([1, 2])]
< /code>
als Beispiel für etwas, das im Vergleich zu True zurückkehren sollte. Die Reihenfolge der Elemente sollte innerhalb des Numpy -Arrays von Bedeutung sein, also < /p>
list_3 = [numpy.array([2, 1]), numpy.array([3])]
sollte im Vergleich zu beiden List_1 und list_2 . Meine Sicherungslösung bestand darin, die folgende Funktion auszuprobieren: < /p>

Code: Select all

def contents_equal(list_1, list_2):
for array in list_1:
if array not in list_2:
return False
for array in list_2:
if array not in list_1:
return False
return True
< /code>
Leider hat dies auch nicht funktioniert. Ich habe den folgenden Fehler in der Zeile erhalten, wenn Array nicht in list_2 
:

Code: Select all

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

Ich habe eine andere Lösung mit A.All () ausprobiert, wie vorgeschlagen:

Code: Select all

def contents_equal(list_1, list_2):
if [array not in list_2 for array in list_1].any():
return False
if [array not in list_1 for array in list_2].any():
return False
return True
< /code>
Dieser fühlte sich für mich weniger lesbar an, aber ich dachte, wenn es funktioniert hat, hat es funktioniert. Leider hat es nicht funktioniert. Ich habe die gleiche ValueError 
in der Anweisung iF erhalten. Ich bin mir nicht sicher, was ich von hier aus ausprobieren soll oder warum meine Lösung nicht funktioniert. Ich bewerten keine Liste als Booleschen in beiden Lösung, soweit ich das beurteilen kann, worüber sich der Fehler beschwert. Kann mich jemand aufklären?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post