Liste anhand einer Funktion aufteilen

PythonPythonBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In dieser Aufgabe schreiben Sie eine Python-Funktion, die eine Liste in zwei Gruppen aufteilt, basierend auf dem Ergebnis einer gegebenen Filterfunktion. Dies ist eine häufige Aufgabe in der Programmierung, insbesondere wenn es um große Datensätze geht.

Liste anhand einer Funktion aufteilen

Schreiben Sie eine Funktion bifurcate_by(lst, fn), die eine Liste lst und eine Filterfunktion fn als Argumente nimmt. Die Funktion sollte die Liste in zwei Gruppen aufteilen, basierend auf dem Ergebnis der Filterfunktion. Wenn die Filterfunktion für ein Element einen wahren Wert zurückgibt, sollte es der ersten Gruppe hinzugefügt werden. Andernfalls sollte es der zweiten Gruppe hinzugefügt werden.

Ihre Funktion sollte eine Liste von zwei Listen zurückgeben, wobei die erste Liste alle Elemente enthält, für die die Filterfunktion einen wahren Wert zurückgegeben hat, und die zweite Liste alle Elemente enthält, für die die Filterfunktion einen falschen Wert zurückgegeben hat.

Verwenden Sie eine Listenkomprehension, um Elemente den Gruppen hinzuzufügen, basierend auf dem Wert, den fn für jedes Element zurückgibt.

def bifurcate_by(lst, fn):
  return [
    [x for x in lst if fn(x)],
    [x for x in lst if not fn(x)]
  ]
bifurcate_by(['beep', 'boop', 'foo', 'bar'], lambda x: x[0] == 'b')
## [ ['beep', 'boop', 'bar'], ['foo'] ]

Zusammenfassung

In dieser Aufgabe haben Sie gelernt, wie Sie eine Liste in zwei Gruppen aufteilen, basierend auf dem Ergebnis einer gegebenen Filterfunktion. Sie haben eine Listenkomprehension verwendet, um Elemente den Gruppen hinzuzufügen, basierend auf dem Wert, den die Filterfunktion für jedes Element zurückgibt. Dies ist eine nützliche Technik in der Programmierung, insbesondere wenn es um große Datensätze geht.