【发布时间】:2018-09-10 18:37:24
【问题描述】:
a) 我想创建一个生成器函数来生成列表中的元素 = [1,3,4,"hello", 5,3,4, "create"]。
b) 然后我想创建一个新列表,该列表使用创建的相同生成器函数仅使用唯一元素排序。
这适用于 a) 还是因为 for 循环而破坏了使用生成器的目的?
def generate(list):
for i in list:
yield(i)
produce = generator(list)
【问题讨论】:
-
“我想创建一个生成器函数来生成列表的元素”——为什么?
-
“这对 a) 有效还是因为 for 循环而破坏了使用生成器的目的?” - 那么,您的目的到底是什么?想把它当作发电机吗?
-
这是课堂作业
-
你为什么要问 我们 它是否适用于 (a) 部分。运行它,看看你得到了什么! :-) 在您的代码出现已知问题之前,您不会遇到 Stack Overflow 问题。
-
生成器的主要好处之一是它们可以比传统列表占用更少的空间。但是,如果您要获取生成器的输出并对其进行排序,那么您需要一次将所有数据存储在内存中,这样您就失去了最初节省的内存。我会说这违背了目的。
标签: python list iterator generator