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资源,我怎么能解决这个瓶颈?python convert list [0,1,2,3,4,5] to [0,1,2],[1,2,3],[2,3,4]

回答:

如果您的列表大小为n您将拥有O(n)个这样的列表来组成 - 这是无法实现的。

虽然你可以做的一件事情就是懒洋洋地计算出来,这样下一个列表将只在你试图访问它时计算出来。在这个例子中使用一个发电机是非常简单的:

def compose_lists(lst): 

for i in range(len(lst)-2):

yield lst[i:i+3]

以上是 python convert list [0,1,2,3,4,5] to [0,1,2],[1,2,3],[2,3,4] 的全部内容, 来源链接: utcz.com/qa/259970.html

回到顶部