首頁 > 後端開發 > Python教學 > 如何從原始清單中每第 N 個項目產生一個新清單?

如何從原始清單中每第 N 個項目產生一個新清單?

Mary-Kate Olsen
發布: 2024-10-20 10:56:02
原創
758 人瀏覽過

How to Generate a New List with Every Nth Item from an Original List?

使用原始清單中的每N 個項目建立一個清單

在資料分析或程式設計中,通常需要使用下列子集一個清單。一項常見任務是建立一個新列表,其中僅包含原始列表中的每第 N 個項目。例如,給定一個從 0 到 1000 的整數列表,我們如何獲得一個僅包含第一個和後續第 10 個項目的列表?

使用傳統的for 循環,我們可以如下完成此任務:

<code class="python">xs = list(range(1001))
new_list = []
for i, x in enumerate(xs):
    if i % 10 == 0:
        new_list.append(x)</code>
登入後複製

但是,使用Python 的切片可以提供更簡潔、更有效率的方法:

<code class="python">>>> xs = list(range(1001))
>>> new_list = xs[0::10]</code>
登入後複製

在此解決方案中,xs[0::10] 表達式建立一個新列表,包括從索引0 開始的每10 項。結果是一個包含 [0, 10, 20, 30, ..., 1000] 的列表,無需循環或條件檢查。

此方法明顯更快與 for 迴圈方法相比,在處理大型清單時證明是有利的。如以下時間比較所示:

<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>
登入後複製

這種使用切片的最佳化方法為使用原始清單中的每 N 個項目建立新清單提供了簡單性和效能優勢。

以上是如何從原始清單中每第 N 個項目產生一個新清單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板