1

好像应该有...

现在,您可以将多维散列到同一个表中,而不会产生任何负面影响,这似乎是一种魔法。

4

2 回答 2

4

从字典的角度来看,没有一件事是多维的。字典不知道您将键解释为描述 n 空间。

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

没有负面影响。

有些任务的效率可能低于替代实现。例如,如果您使用坐标作为键,则相对于真正的多维存储(x, y, z),在某些位置查找所有点将非常耗时。z但有时清晰、易于实施和阅读胜过高效存储。

于 2012-06-26T19:06:21.163 回答
2

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

简而言之,python dict 中键的唯一要求是它们是不可变的和可散列的。对于元组(不可变),这意味着您只需要组合子对象的散列(它们本身必须是不可变和可散列的)。您也可以使用 freezeset 作为键。您不能使用列表、字典或集合作为键。

于 2012-06-26T19:06:11.907 回答