Python hashlib - 列表理解的更新和摘要

Python hashlib - Update and Digest for list comprehension

我想做一个列表理解,对 2 个列表中的元素进行哈希处理。我假设它看起来像这样:

hashes = [hashlib.md5().update(a + b).digest() for a, b in zip(f,l)]

(假设 fl 中的元素编码正确)

我无法做到这一点,我需要结合使用辅助函数

def update_digest(s):
    h = hashlib.md5()
    h.update(s)
    return h.digest()

update() 方法似乎没有 return 用于顺序调用的对象实例。我想做一些类似于 'BOB '.strip().lower()

的事情

显然,我唯一的动机是在列表理解中使用它。

有办法吗?

如果不是,为什么 update() return 不是对象的实例?我觉得有一些我不知道的关于哈希的东西禁止它...

update 方法不return 任何东西,它只是更新调用它的对象。这就是它的设计方式。

但是您可以省略更新并将要散列的数据直接提供给构造函数,因此您不需要辅助函数:

hashlib.md5("foobar").digest()

你的电话可能是这样的:

hashes = [hashlib.md5(a+b).digest() for a, b in zip(f,l)]