gpt4 book ai didi

python-3.x - 是否有与 Stream.findAny() 等效的 Python?

转载 作者:行者123 更新时间:2023-12-05 07:46:56 26 4
gpt4 key购买 nike

我想找到给定哈希值的消息。为此,我想遍历 ascii 小写字母和数字的所有可能的 n 长度排列的集合,并检查排列的哈希值是否等于给定的哈希值。

问题:预先计算集合是不可行的,因为空间复杂度是 O(36^n)。

想法:在 Java 中,我将创建一个 Stream 来生成这些排列并在应用过滤器后使用 findAny()。由于惰性评估,无需提前计算所有可能的排列。

问题:Python 中是否有一些模仿这种行为的等价物?我想可以调整 itertools 来像这样工作,但我不确定。

感谢任何类型的反馈!

最佳答案

Generators 正是您要寻找的: https://wiki.python.org/moin/Generators

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

在此示例中,每次调用 f.next() 都会计算并返回下一个值。

你可以把它想象成 yield 返回一个值并等待另一个 next 调用。

关于python-3.x - 是否有与 Stream.findAny() 等效的 Python?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40421401/

26 4 0