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)]
(假设 f
和 l
中的元素编码正确)
我无法做到这一点,我需要结合使用辅助函数
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)]
我想做一个列表理解,对 2 个列表中的元素进行哈希处理。我假设它看起来像这样:
hashes = [hashlib.md5().update(a + b).digest() for a, b in zip(f,l)]
(假设 f
和 l
中的元素编码正确)
我无法做到这一点,我需要结合使用辅助函数
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)]