N-te Elementextraktion aus Listen mit Python
Die Aufgabe besteht darin, jedes nachfolgende N-te Element aus einer bestimmten Liste zu extrahieren. Wenn beispielsweise eine Liste mit ganzen Zahlen [0, 1, 2, 3, ..., 997, 998, 999] gegeben ist, besteht das Ziel darin, eine neue Liste zu erhalten, die das erste und jedes weitere zehnte Element enthält, was zu [0, 10, 20, 30, ..., 990].
Während eine for-Schleife mit Modulprüfung ein einfacher Ansatz ist, gibt es eine präzisere und effizientere Lösung mit dem Slicing-Operator von Python.
<code class="python">xs = list(range(1000)) new_list = xs[0::10]</code>
Diese Zeile erledigt die Aufgabe in einer einzigen Codezeile. Die Syntax xs[0::10] ist ein Slice-Ausdruck, wobei:
Die resultierende neue_Liste enthält die gewünschten Elemente, [0, 10, 20, 30, ..., 990].
Leistungsvergleich
Benchmarking zeigt, dass dieser Slicing-Ansatz deutlich schneller ist als die for-Schleifenlösung:
$ python -m timeit -s "xs = list(range(1000))" "[x for i, x in enumerate(xs) if i % 10 == 0]" 517 loops, best of 5: 471.776 usec per loop $ python -m timeit -s "xs = list(range(1000))" "xs[0::10]" 100000 loops, best of 5: 4.03 usec per loop
Dies zeigt die Effizienz und Einfachheit des Slicing-Ansatzes zum Extrahieren jedes N-ten Elements aus einer Liste in Python.
Das obige ist der detaillierte Inhalt vonSo extrahieren Sie jedes N-te Element aus Listen mithilfe von Python Slicing. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!