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

标签 python-3.x hash iterator java-stream

我想找到给定哈希值的消息。为此,我想遍历 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/

相关文章:

python - `nth` 破坏了 pandas 中排序的数据框

c++ - 预先知道的字符串的完美哈希函数

.net - 如何显示另一个库对文件执行操作的进度?

c++ - std::swap 返回 0xBAADF00D

c++ - 编译器如何知道是否调用 const 重载?

c++ - 从字符指针获取迭代器 (C++)

python - kivy按钮文本=""逻辑错误

mysql - 如何使用 Python Flask 从 MYSQL 获取 XML?

python - 如何从Python中的打印列表中删除/删除最后一个字符

objective-c - 如何计算 NSMutableArray 的每个内容的哈希 MD5?