[英]Need to understand Python generator object
在下面的:
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()函数,那么生成器表达式周围是否应该有另一组括号?
谢谢。
不,不需要额外的parens,实际上也不是你正在测试的“布尔表达式”所必需的parens,请看这两个简单的例子:
In [37]: any(i > 10 for i in range(19))
Out[37]: True
In [38]: all(i > 10 for i in range(19))
Out[38]: False
你所拥有的是一个带有单个参数的函数调用(你的生成器表达式)所以不需要parens。 有关更多信息,请参阅生成器表达式文档 。
对于只有一个参数(生成器表达式)的函数调用,每个文档不需要它们
对于只有一个参数的调用,可以省略括号。 请参阅呼叫详细信息部分。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.