Liste in Python anhand eines Filters 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 Python können wir eine Liste basierend auf einem gegebenen Filter in zwei Gruppen unterteilen. Dies kann mit einer List Comprehension und der zip()-Funktion erreicht werden. In dieser Herausforderung werden Sie aufgefordert, eine Funktion zu schreiben, die eine Liste und einen Filter als Eingabe nimmt und zwei Listen zurückgibt, wobei eine die Elemente enthält, die den Filter bestehen, und die andere die Elemente, die ihn nicht bestehen.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python/BasicConceptsGroup -.-> python/booleans("Booleans") python/BasicConceptsGroup -.-> python/comments("Comments") python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") python/ControlFlowGroup -.-> python/for_loops("For Loops") python/ControlFlowGroup -.-> python/list_comprehensions("List Comprehensions") python/DataStructuresGroup -.-> python/lists("Lists") python/DataStructuresGroup -.-> python/tuples("Tuples") python/FunctionsGroup -.-> python/function_definition("Function Definition") python/FunctionsGroup -.-> python/build_in_functions("Build-in Functions") subgraph Lab Skills python/booleans -.-> lab-13591{{"Liste in Python anhand eines Filters aufteilen"}} python/comments -.-> lab-13591{{"Liste in Python anhand eines Filters aufteilen"}} python/conditional_statements -.-> lab-13591{{"Liste in Python anhand eines Filters aufteilen"}} python/for_loops -.-> lab-13591{{"Liste in Python anhand eines Filters aufteilen"}} python/list_comprehensions -.-> lab-13591{{"Liste in Python anhand eines Filters aufteilen"}} python/lists -.-> lab-13591{{"Liste in Python anhand eines Filters aufteilen"}} python/tuples -.-> lab-13591{{"Liste in Python anhand eines Filters aufteilen"}} python/function_definition -.-> lab-13591{{"Liste in Python anhand eines Filters aufteilen"}} python/build_in_functions -.-> lab-13591{{"Liste in Python anhand eines Filters aufteilen"}} end

Liste aufteilen

Schreiben Sie eine Funktion bifurcate(lst, filter), die eine Liste lst und einen Filter filter als Eingabe nimmt und eine Liste von zwei Listen zurückgibt. Die erste Liste sollte die Elemente von lst enthalten, die den Filter bestehen, und die zweite Liste sollte die Elemente enthalten, die ihn nicht bestehen.

Um diese Funktion zu implementieren, können Sie eine List Comprehension und die zip()-Funktion verwenden. Die zip()-Funktion nimmt zwei oder mehr Listen als Eingabe und gibt eine Liste von Tupeln zurück, wobei jedes Tupel die entsprechenden Elemente aus jeder Liste enthält. Beispielsweise gibt zip([1, 2, 3], [4, 5, 6]) [(1, 4), (2, 5), (3, 6)] zurück.

Sie können diese Funktion verwenden, um gleichzeitig über lst und filter zu iterieren und die Elemente der entsprechenden Liste hinzuzufügen, je nachdem, ob sie den Filter bestehen oder nicht.

def bifurcate(lst, filter):
  return [
    [x for x, flag in zip(lst, filter) if flag],
    [x for x, flag in zip(lst, filter) if not flag]
  ]
bifurcate(['beep', 'boop', 'foo', 'bar'], [True, True, False, True])
## [ ['beep', 'boop', 'bar'], ['foo'] ]

Zusammenfassung

In dieser Herausforderung haben Sie gelernt, wie Sie eine Liste basierend auf einem gegebenen Filter in zwei Gruppen unterteilen. Sie haben eine List Comprehension und die zip()-Funktion verwendet, um gleichzeitig über die Liste und den Filter zu iterieren und die Elemente der entsprechenden Liste hinzuzufügen, je nachdem, ob sie den Filter bestehen oder nicht.