是否存在可以产生无限元素的直接生成器表达式?
这是一个纯粹的理论问题.这里不需要"实用"的答案:)
例如,很容易制作一个有限的发电机:
my_gen = (0 for i in xrange(42))
Run Code Online (Sandbox Code Playgroud)
但是,要创建一个无限的,我需要使用伪造的函数"污染"我的命名空间:
def _my_gen():
while True:
yield 0
my_gen = _my_gen()
Run Code Online (Sandbox Code Playgroud)
在单独的文件中执行操作并在import以后执行操作不计算在内.
我也知道这就是itertools.repeat这个.我很好奇是否有一个没有它的单线解决方案.
我的目标是以无序方式存储来自用户的许多输入。所以,我决定使用set. 我到目前为止的代码是:
a = input()
b = input()
c = input()
d = input()
all = a, b, c, d
print(set(all))
Run Code Online (Sandbox Code Playgroud)
但是,我不想像input()上面那样重复几次。有没有办法实现这一目标?
我有两个功能,f和g.两者都有相同的签名:(x).我想创建一个z具有相同签名的新函数:
def z(x):
return f(x) * g(x)
Run Code Online (Sandbox Code Playgroud)
除了我想能写
z = f * g而不是上面的代码.可能吗?