为什么我要使用itertools.islice而不是常规列表切片?

为什么我要使用itertools.islice而不是常规列表切片?,第1张

为什么我要使用itertools.islice而不是常规列表切片

为了解决您提出的两个示例:

import itertoolsdata1 = range(10)# This creates a NEW listdata1[2:5]# This creates an iterator that iterates over the EXISTING listitertools.islice(data1, 2, 5)data2 = [1, 2, 3]data3 = [4, 5, 6]# This creates a NEW listdata2 + data3# This creates an iterator that iterates over the EXISTING listsitertools.chain(data2, data3)

为什么要使用迭代器而不是其他方法有很多原因。如果列表很大,则可能会创建一个包含大子列表的新列表,或者特别是创建一个包含两个其他列表的副本的列表。使用

islice()
chain()
允许您以所需的方式遍历列表,而不必使用更多的内存或计算来创建新列表。另外,如unutbu所述,您不能将方括号切片加法器与迭代器一起使用。

我希望答案就足够了;还有很多其他答案和其他资源来解释为什么迭代器很棒,所以我不想在这里重复所有这些信息。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5021227.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-15
下一篇 2022-11-15

发表评论

登录后才能评论

评论列表(0条)

保存