簡體   English   中英

python將列表[0,1,2,3,4,5]轉換為[0,1,2],[1,2,3],[2,3,4]

[英]python convert list [0, 1, 2, 3, 4, 5] to [0, 1, 2], [1,2,3], [2,3,4]

我可以像[a[i:i+3], for i in range()] 但是我發現當a很大時,它會占用太多的cpu資源,我該如何解決這個瓶頸?

如果您的列表大小為n則將有O(n)個這樣的列表組成-無法解決。

但是,您可以做的一件事就是懶惰地計算它,這樣,只有當您嘗試訪問它時,才會計算下一個列表。 在此示例中使用生成器非常簡單:

def compose_lists(lst):
    for i in range(len(lst)-2):
        yield lst[i:i+3]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM