Erstellen Sie eine Liste mit jedem N-ten Element aus einer Originalliste
Bei der Datenanalyse oder Programmierung ist es oft notwendig, mit einer Teilmenge von zu arbeiten eine Liste. Eine häufige Aufgabe besteht darin, eine neue Liste zu erstellen, die nur jedes N-te Element der ursprünglichen Liste enthält. Wie können wir beispielsweise bei einer gegebenen Liste mit ganzen Zahlen von 0 bis 1000 eine Liste erhalten, die nur das erste und jedes weitere zehnte Element enthält?
Mit einer herkömmlichen for-Schleife können wir diese Aufgabe wie folgt erledigen:
<code class="python">xs = list(range(1001)) new_list = [] for i, x in enumerate(xs): if i % 10 == 0: new_list.append(x)</code>
Ein prägnanterer und effizienterer Ansatz ist jedoch mit Pythons Slicing verfügbar:
<code class="python">>>> xs = list(range(1001)) >>> new_list = xs[0::10]</code>
In dieser Lösung erstellt der xs[0::10]-Ausdruck eine neue Liste, die umfasst jedes 10. Element ab Index 0. Das Ergebnis ist eine Liste mit [0, 10, 20, 30, ..., 1000], ohne dass Schleifen oder bedingte Prüfungen erforderlich sind.
Diese Methode ist deutlich schneller als der for-Schleifen-Ansatz, was sich beim Umgang mit großen Listen als vorteilhaft erweist. Wie der folgende Zeitvergleich zeigt:
<code class="python">$ python -m timeit -s "xs = list(range(1000))" "[x for i, x in enumerate(xs) if i % 10 == 0]" 500 loops, best of 5: 476 usec per loop $ python -m timeit -s "xs = list(range(1000))" "xs[0::10]" 100000 loops, best of 5: 3.32 usec per loop</code>
Dieser optimierte Ansatz mit Slicing bietet sowohl Einfachheit als auch Leistungsvorteile beim Erstellen neuer Listen mit jedem N-ten Element aus einer ursprünglichen Liste.
Das obige ist der detaillierte Inhalt vonWie erstelle ich eine neue Liste mit jedem N-ten Element aus einer Originalliste?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!