在Python中使用元组作为字典键的任何缺点?

时间:2012-06-26 19:01:35

标签: python dictionary

似乎应该......

现在看起来像是魔术,你可以多维地对同一个表进行哈希处理,没有任何负面影响。

2 个答案:

答案 0 :(得分:4)

从字典的角度来看,关于它的问题没有多少。字典不知道您将键解释为描述n空格。

例如,你可以巧妙地将你的矢量打包成一个字符串,这个字符串看起来不那么神奇,要做得更复杂,而且功能相同。就解释器而言,Python字符串是另一个不可变序列。

没有负面影响。

某些任务的效率可能低于备用实施。例如,如果您使用(x, y, z)坐标作为键,则查找某些z处的所有点相对于真实的多维存储将是耗时的。但有时清晰度和易于实施和阅读特朗普有效的商店。

答案 1 :(得分:2)

唯一的缺点是性能。较大的键意味着更长的哈希时间。

简单地说,python dict中键的唯一要求是它们是不可变的和可清除的。对于元组(不可变),这意味着您只需要组合子对象的哈希值(它们本身必须是不可变的和可哈希的)。您还可以使用冻结集作为密钥。您不能使用列表或词组或集合作为键。