当前位置: 首页 > 面试题库 >

需要了解Python生成器对象

邓开济
2023-03-14
问题内容

在下面的:

name = 'TODD'
chars = set('AEIOU')
for ii in range(-1, int(math.copysign(len(name) + 1, -1)), -1):
    if any((cc in chars) for cc in name[ii]):
        print 'Found'
    else:
        print 'Not Found'

我知道any(…)内部是一个生成器对象。我不明白的是缺少括号-如果括号属于any()函数,在生成器表达式周围是否应该有另一组括号?

谢谢。


问题答案:

当仅在一个参数中使用函数调用时,可以省略括号,生成器表达式语法专门允许使用该括号。

仅带有一个参数的调用可以省略括号。有关详细信息,请参见“通话”部分。



 类似资料:
  • 问题内容: 我目前正在阅读Python,目前正在研究生成器。我发现很难回头。 从Java的背景出发,是否有Java的等效语言?这本书讲的是“生产者/消费者”,但是当我听说线程的时候。 什么是发电机,为什么要使用它?显然,无需引用任何书籍(除非您可以直接从书籍中找到一个体面,简单的答案)。也许举一些例子,如果您感到慷慨! 问题答案: 注意:本文采用Python 3.x语法。† 一个发电机仅仅是它返回

  • 问题内容: 这可能是一个愚蠢的问题,但是我还是会问。我有一个生成器对象: 我可以测量它的大小: 据说发电机会被消耗掉: …但保持不变。 使用字符串可以按我的预期工作: 如果有人能启发我,我将不胜感激。 问题答案: 不按照您的想法去做。该方法返回给定对象的内部大小(以字节为单位),而不是生成器将要返回的项目数。 Python无法事先知道生成器的大小。以下面的无限生成器为例(例如,有更好的方法来创建计

  • 本文向大家介绍Python生成器(Generator)详解,包括了Python生成器(Generator)详解的使用技巧和注意事项,需要的朋友参考一下 通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。 所以,如果列表元素可以

  • 前面章节中,已经详细介绍了什么是迭代器。生成器本质上也是迭代器,不过它比较特殊。 以 list 容器为例,在使用该容器迭代一组数据时,必须事先将所有数据存储到容器中,才能开始迭代;而生成器却不同,它可以实现在迭代的同时生成元素。 也就是说,对于可以用某种算法推算得到的多个数据,生成器并不会一次性生成它们,而是什么时候需要,才什么时候生成。 不仅如此,生成器的创建方式也比迭代器简单很多,大体分为以下

  • 问题内容: 有人可以推荐使用Apache或LGPL Java许可下的安全密码生成器吗? 问题答案: 我不必担心生成令人难以置信的强大一次性密码。设置较长的密码,如果您限制密码的有效期限,那么蛮力应该不是问题。如果密码仅在1个小时内有效,那么如果密码未使用则不会有问题。在这段时间内,不太可能有人会用蛮力破解它。 同样重要的是,您只能一次使用一次密码。这样,如果密码被截获,用户将在一次密码到期时注意到

  • 本文向大家介绍python生成器与迭代器详解,包括了python生成器与迭代器详解的使用技巧和注意事项,需要的朋友参考一下 列表生成式: 例一: a = [i+1 for i in range(10)] print(a) 输出: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 例二: L = [1, 2, 3, 4, 5] print([i*i for i in L if i>3]