Einführung
In dieser Herausforderung müssen Sie die Ungleichheitsausreißer in einer gegebenen Liste finden. Ungleichheitsausreißer sind Elemente in einer Liste, die eine andere Parität (ungerade oder gerade) als die Mehrheit der Elemente in der Liste haben.
Ungleichheitsausreißer finden
Schreiben Sie eine Funktion find_parity_outliers(nums), die eine Liste von ganzen Zahlen nums als Argument nimmt und eine Liste aller Ungleichheitsausreißer in nums zurückgibt.
Um dieses Problem zu lösen, können Sie die folgenden Schritte ausführen:
- Verwenden Sie
collections.Countermit einer Listenkomprehension, um die Anzahl der geraden und ungeraden Werte in der Liste zu zählen. - Verwenden Sie
collections.Counter.most_common(), um die häufigste Parität zu erhalten. - Verwenden Sie eine Listenkomprehension, um alle Elemente zu finden, die nicht der häufigsten Parität entsprechen.
from collections import Counter
def find_parity_outliers(nums):
return [
x for x in nums
if x % 2!= Counter([n % 2 for n in nums]).most_common()[0][0]
]
find_parity_outliers([1, 2, 3, 4, 6]) ## [1, 3]
Zusammenfassung
In dieser Herausforderung haben Sie gelernt, wie Sie die Ungleichheitsausreißer in einer Liste von ganzen Zahlen finden. Sie haben das Modul collections.Counter verwendet, um die Anzahl der geraden und ungeraden Werte in der Liste zu zählen, und dann die häufigste Parität gefunden. Schließlich haben Sie eine Listenkomprehension verwendet, um alle Elemente zu finden, die nicht der häufigsten Parität entsprechen.