Python 3.x 是否存在与Stream.findAny()等效的Python?
我想找到给定哈希值的消息。为此,我想迭代ascii小写和数字的所有可能的n长度排列的集合,并检查排列的散列是否等于给定的散列值 问题:由于空间复杂度为O(36^n),预先计算集合是不可行的 Idea:在Java中,我会创建一个产生这些排列的流,并在应用过滤器后使用findAny()。由于延迟计算,不需要预先计算所有可能的排列 问题:Python中是否有类似的行为?我想itertools可以调整成这样,但我不确定Python 3.x 是否存在与Stream.findAny()等效的Python?,python-3.x,hash,iterator,java-stream,Python 3.x,Hash,Iterator,Java Stream,我想找到给定哈希值的消息。为此,我想迭代ascii小写和数字的所有可能的n长度排列的集合,并检查排列的散列是否等于给定的散列值 问题:由于空间复杂度为O(36^n),预先计算集合是不可行的 Idea:在Java中,我会创建一个产生这些排列的流,并在应用过滤器后使用findAny()。由于延迟计算,不需要预先计算所有可能的排列 问题:Python中是否有类似的行为?我想itertools可以调整成这样,但我不确定 感谢任何形式的反馈 发电机就是您要寻找的: def foo(n): num=0 当
感谢任何形式的反馈 发电机就是您要寻找的:
def foo(n):
num=0
当num
在本例中,对f.next()的每次调用都会计算并返回下一个值
您可以将其视为yield返回一个值,然后等待下一次调用。生成器是您需要的:
def foo(n):
num=0
当num
在本例中,对f.next()的每次调用都会计算并返回下一个值
您可以将其视为yield返回一个值,然后等待下一个
调用。是的,您可以使用itertools执行此操作,它有一个置换生成器doesn't permutations()生成一个完整大小的数组?是的,您可以使用itertools执行此操作,它有一个置换生成器doesn't permutations()生成完整大小的数组?我只是不确定next()函数如何处理字符串。我以为生成器更适合整数?不,你可以返回你想要的任何东西。甚至每次都使用不同类型的对象。我只是不确定next()函数如何处理字符串。我以为生成器更适合整数?不,你可以返回你想要的任何东西。即使是每次使用不同类型的对象。
def foo(n):
num = 0
while num < n:
yield num
num += 1
f = foo(5)
print f.next() // 0
print f.next() // 1
print f.next() // 2