草庐IT

开散列

全部标签

python - 是什么让列表不可散列?

所以列表是不可散列的:>>>{[1,2]:3}TypeError:unhashabletype:'list'以下page给出解释:Alistisamutabletype,andcannotbeusedasakeyinadictionary(itcouldchangein-placemakingthekeynolongerlocatableintheinternalhashtableofthedictionary).我理解为什么不希望使用可变对象作为字典键。但是,即使我只是试图散列列表(独立于字典创建),Python也会引发相同的异常>>>hash([1,2])TypeError:unh

python - 多个分类特征(列)的特征散列

我想将“流派”特征散列到6列中,并将“出版商”特征单独放入另外六列中。我想要像下面这样的东西:GenrePublisher0123450123450PlatformNintendo0.02.02.0-1.01.00.00.02.02.0-1.01.00.01RacingNoir-1.00.00.00.00.0-1.0-1.00.00.00.00.0-1.02SportsLaura-2.02.00.0-2.00.00.0-2.02.00.0-2.00.00.03RoleplayingJohn-2.02.02.00.01.00.0-2.02.02.00.01.00.04PuzzleJohn

python - 为什么切片对象在 python 中不可散列

为什么python中的切片对象不可哈希:>>>s=slice(0,10)>>>hash(s)TypeErrorTraceback(mostrecentcalllast)in()---->1hash(s)TypeError:unhashabletype它们似乎是不可变的:>>>s.start=5TypeErrorTraceback(mostrecentcalllast)in()---->1s.start=5TypeError:readonlyattribute上下文,我想制作一个字典,将python整数或切片对象映射到某些值,如下所示:classFoo:def__init__(self)

python - 在保留顺序的同时从包含不可散列元素的 Python 列表中删除重复元素?

我有这样的数据结构:[[('A','1'),('B','2')],[('A','1'),('B','2')],[('A','4'),('C','5')]]我想得到这个:[[('A','1'),('B','2')],[('A','4'),('C','5')]]有没有一种好的方法可以做到这一点,同时保持如图所示的顺序?复制粘贴命令:sample=[]sample.append([('A','1'),('B','2')])sample.append([('A','1'),('B','2')])sample.append([('A','4'),('C','5')])

python - 散列一系列值

我知道我可以将奇异值散列为dict中的键.例如,我可以散列5作为dict中的键之一.我目前面临一个问题,需要我对一系列值进行哈希处理。基本上,我需要一种更快的方法来做到这一点:if0哪里x是一些float任意精度参数。我能想到的最快的方法是散列,但问题是:我可以使用(0.1,0.2)作为一个关键,但这仍然会让我花费O(n)运行时间并且最终并不比elif的系列更好。s(我将不得不遍历键并检查是否为key[0])。有没有办法对一系列值进行哈希处理,以便我可以检查哈希表中的0.15仍然得到#executeB?如果这样的散列不可能实现,我还能如何改进它的运行时间?我正在处理足够大的数据集,线性

python - 是否可以在服务器上加盐和/或散列 HOTP/TOTP secret ?

我正在构建一个基于TOTP/HOTP的双因素身份验证系统。为了验证otp,服务器和otp设备都必须知道共享key。由于HOTP密码与用户密码非常相似,我认为应该应用类似的最佳实践。特别是强烈建议永远不要存储未加密的密码,只保留密码的加盐哈希值。RFC和HOTP/TOTP的python实现似乎都没有涵盖这方面。有没有一种方法可以使用OTP共享key的单向加密,或者这是一个愚蠢的想法? 最佳答案 Isthereawaytouseone-wayencryptionoftheOTPsharedsecret...?不是真的。您可以使用可逆加密

python - 在 Python 中,为什么元组可散列而不是列表?

在下面,当我尝试散列列表时,它给了我一个错误,但它适用于元组。猜猜它与不变性有关。有人可以详细解释一下吗?列表x=[1,2,3]y={x:9}Traceback(mostrecentcalllast):File"",line1,inTypeError:unhashabletype:'list'元组z=(5,6)y={z:89}print(y){(5,6):89} 最佳答案 字典和其他对象使用hashes真正快速地存储和检索项目。这一切的机制都发生在“幕后”——你作为程序员不需要做任何事情,Python会在内部处理这一切。基本思想是,

python - 使用不同版本的 sha 散列(hashlib 模块)是否有显着的开销

hashlibPython模块提供了以下哈希算法构造函数:md5()、sha1()、sha224()、sha256()、sha384()和sha512()。假设我不想使用md5,使用sha1而不是sha512有很大的不同吗?我想使用类似hashlib.shaXXX(hashString).hexdigest()的东西,但因为它只是用于缓存,所以我不确定我是否需要512的(最终)额外开销...这种开销是否存在,如果存在,有多大? 最佳答案 为什么不直接对其进行基准测试?>>>defsha1(s):...returnhashlib.sh

python - 使用不同版本的 sha 散列(hashlib 模块)是否有显着的开销

hashlibPython模块提供了以下哈希算法构造函数:md5()、sha1()、sha224()、sha256()、sha384()和sha512()。假设我不想使用md5,使用sha1而不是sha512有很大的不同吗?我想使用类似hashlib.shaXXX(hashString).hexdigest()的东西,但因为它只是用于缓存,所以我不确定我是否需要512的(最终)额外开销...这种开销是否存在,如果存在,有多大? 最佳答案 为什么不直接对其进行基准测试?>>>defsha1(s):...returnhashlib.sh

python:无法散列的类型错误

Traceback(mostrecentcalllast):File"",line1,indo_work()File"C:\pythonwork\readthefile080410.py",line14,indo_workpopulate_frequency5(e,data)File"C:\pythonwork\readthefile080410.py",line157,inpopulate_frequency5data=medications_minimum3(data,[drug.upper()],1)File"C:\pythonwork\readthefile080410.py"