Einführung
Beim Programmieren ist es oft erforderlich, zu überprüfen, ob zwei Listen die gleichen Elemente enthalten, unabhängig von ihrer Reihenfolge. Dies kann in einer Vielzahl von Situationen nützlich sein, beispielsweise beim Überprüfen, ob zwei Datensätze die gleichen Werte haben, oder beim Verifizieren, ob eine Funktion das erwartete Ergebnis zurückgibt. In dieser Herausforderung werden Sie eine Funktion schreiben, die überprüft, ob zwei Listen den gleichen Inhalt haben.
Überprüfen, ob zwei Listen den gleichen Inhalt haben
Schreiben Sie eine Funktion have_same_contents(a, b), die zwei Listen als Argumente nimmt und True zurückgibt, wenn sie den gleichen Inhalt haben, andernfalls False. Die Funktion sollte überprüfen, ob die zwei Listen die gleichen Elemente enthalten, unabhängig von ihrer Reihenfolge.
Um dieses Problem zu lösen, können Sie die folgenden Schritte ausführen:
- Verwenden Sie
set()auf der Kombination beider Listen, um die eindeutigen Werte zu finden. - Iterieren Sie über sie mit einer
for-Schleifeund vergleichen Sie diecount()jedes eindeutigen Werts in jeder Liste. - Geben Sie
Falsezurück, wenn die Zählungen für irgendein Element nicht übereinstimmen, andernfallsTrue.
def have_same_contents(a, b):
for v in set(a + b):
if a.count(v)!= b.count(v):
return False
return True
have_same_contents([1, 2, 4], [2, 4, 1]) ## True
Zusammenfassung
In dieser Herausforderung haben Sie gelernt, wie Sie überprüfen können, ob zwei Listen den gleichen Inhalt haben, unabhängig von ihrer Reihenfolge. Indem Sie die set()-Funktion verwenden und über die eindeutigen Werte iterieren, können Sie die count() jedes Elements in beiden Listen vergleichen, um zu bestimmen, ob sie den gleichen Inhalt haben.