generator相关内容

您可以使用生成函数来做什么?

我开始学习Python,我遇到了生成器函数,其中包含Year语句。我想知道这些函数真正擅长解决哪些类型的问题。 推荐答案 生成器为您提供延迟计算。您可以通过迭代来使用它们,显式地使用‘for’,或者隐式地将其传递给任何迭代的函数或构造。您可以将生成器视为返回多个项,就像它们返回一个列表一样,但不是一次返回所有项,而是逐个返回,生成器函数暂停,直到请求下一项。 生成器适用于计算大型 ..
发布时间:2022-03-16 14:56:26 Python

在Python生成器上使用&send";函数的目的是什么?

谁能给我举个例子,说明为什么存在与Python生成器函数相关联的“send”函数?我完全理解屈服函数。然而,发送函数让我感到困惑。有关此方法的文档非常复杂: generator.send(value) 恢复执行并将一个值“发送”到生成器函数。VALUE参数成为当前YILE表达式的结果。send()方法返回生成器生成的下一个值,或者如果生成器退出而没有生成其他值,则引发StopIterat ..
发布时间:2022-03-16 14:49:00 Python

如何打印生成器表达式?

在Python shell中,如果我输入如下列表理解: >>> [x for x in string.letters if x in [y for y in "BigMan on campus"]] 我得到了打印得很好的结果: ['a', 'c', 'g', 'i', 'm', 'n', 'o', 'p', 's', 'u', 'B', 'M'] 字典理解也一样: >>> ..
发布时间:2022-02-23 18:13:38 Python

在 Python 3.3 中与生成器一起返回

在 Python 2 中,函数定义中 return 与 yield 一起出现错误.但是对于 Python 3.3 中的这段代码 def f():返回 3产量 2x = f()打印(x.__next__()) 在有yield的函数中使用return没有错误.但是,当调用函数 __next__ 时,会抛出异常 StopIteration.为什么没有返回值3?这个返回值是否被忽略了? 解决方案 ..
发布时间:2022-01-31 19:26:20 Python

在 Python 中读取大文件的惰性方法?

我有一个非常大的 4GB 文件,当我尝试读取它时,我的计算机挂起.所以我想一块一块地读取它,在处理完每一块后将处理后的块存储到另一个文件中并读取下一块. 有什么方法可以yield这些片段吗? 我希望有一个懒惰的方法. 解决方案 要写一个惰性函数,只需使用 yield: def read_in_chunks(file_object, chunk_size=1024):"""惰性 ..
发布时间:2022-01-30 00:10:35 Python

了解 Python 中的生成器

我目前正在阅读 Python 食谱,目前正在研究生成器.我发现自己的脑袋很难转. 由于我来自 Java 背景,是否有 Java 等价物?这本书讲的是“生产者/消费者",但是当我听到我想到线程时. 什么是生成器,为什么要使用它?显然,无需引用任何书籍(除非您可以直接从书中找到一个体面、简单的答案).如果您觉得大方,也许可以举一些例子! 解决方案 注意:本文假定使用 Python ..
发布时间:2022-01-30 00:05:09 Python

irange() 与 range() 或 xrange() 有何不同?

当我遇到这个 RangeGenerator 页面时,我正在浏览 Python Generators Wiki,其中讨论了 irange() - 这将让我们迭代大范围的数字,而无需求助于 xrange,这是一个惰性列表,而不是生成器. 我似乎无法理解该页面上描述的测试套件和实现.我知道 range() 在内存中创建一个列表(从 Python 2.7 的角度来看),而 xrange() 是 ..
发布时间:2022-01-24 20:07:26 Python

Python 3.x:测试生成器是否有剩余元素

当我在 for 循环中使用生成器时,它似乎“知道",当没有更多元素产生时.现在,我必须使用没有 for 循环的生成器,并手动使用 next() 来获取下一个元素.我的问题是,我怎么知道是否没有更多元素? 我只知道:next() 引发异常(StopIteration),如果什么都没有,那么对于这样一个简单的问题,BUT 是不是有点太“重"了?难道没有has_next()之类的方法吗? 以 ..
发布时间:2022-01-24 12:08:52 其他开发

PowerShell - 密码生成器 - 如何始终在字符串中包含数字?

我有以下 PowerShell 脚本,它创建一个 15 位的随机字符串,用作 Active Directory 密码. 问题是,这在大多数情况下都很好用,但在某些情况下它不使用数字或符号.我只收到15封信.这不能用作 Active Directory 密码,因为它必须至少包含一个数字或符号. $punc = 46..46$digits = 48..57$字母 = 65..90 + 97.. ..
发布时间:2022-01-22 08:05:55 其他开发

Java: true's & 的生成器给出数字 N 的 false 组合;

我尽可能简化任务,所以我可以将它应用到我的算法中. 这是数学家和程序员面临的挑战: 我需要创建一个传递参数 int n 的方法: public void optional_generator(int n){//某种循环或递归...使其可行System.out.println("当前组合:...");} 输出应显示真假的所有可能组合. 这里是 N=1 的例子;N=2;N=3;N ..
发布时间:2022-01-19 17:17:46 Java开发

python3中的可选yield或return.如何?

我想要一个可以选择返回或产生结果的函数.这是一个例子. def f(option=True):...为了...:如果选项:产出结果别的:结果.追加(结果)如果不是选项:返回结果 当然,这是行不通的,我用 python3 试过了,不管我设置什么选项值,我总是得到一个生成器.据我了解,python 检查函数的主体,如果存在 yield,则结果将是生成器.有什么办法可以解决这个问题并制作一个可以随意 ..
发布时间:2022-01-19 15:20:12 Python

哪个通常更快,产量或附加?

我目前在一个个人学习项目中阅读 XML 数据库.我发现自己正在编写收集数据的函数,但我不确定返回它们的快速方法是什么. 这通常更快: yield 或 函数中的几个 append() 然后 return 随后的 list? 我很高兴知道在什么情况下 yields 会比 append()s 更快,反之亦然. 解决方案 yield 具有惰性的巨大优势,而且速度通常不是最好的 ..
发布时间:2022-01-19 15:06:53 Python