」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何從原始清單中每第 N 個項目產生一個新清單?

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

發佈於2024-11-08
瀏覽:700

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

以原始清單中的每 N 個項目建立清單

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

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

xs = list(range(1001))
new_list = []
for i, x in enumerate(xs):
    if i % 10 == 0:
        new_list.append(x)

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

>>> xs = list(range(1001))
>>> new_list = xs[0::10]

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

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

$ 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

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

版本聲明 本文轉載於:1729392499如有侵犯,請洽[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3