【发布时间】:2013-06-07 21:23:56
【问题描述】:
我正在遍历一个数据结构并想构建一个字典映射 X->Y,其中 X 是我正在遍历的数据结构中的一个字段,Y 是我正在构建的数据结构中的一个字段苍蝇。 X 是不可散列的类型。
【问题讨论】:
-
如果 X 是不可散列的,那么有理由认为它可以改变(使映射有点困难)。你想让那个“X”实例总是指向那个“Y”实例吗?或者您是否希望该值的任何 X 指向该“Y”。如果它是第一个,那么您可以为每个 X 分配一个 id,然后该 id 应映射到“Y”。如果是第二个,那么您可以将 X 临时存储在可散列容器中,例如元组并将其用作键。我确信可能有更快的方法来做到这一点(我的蟒蛇有点生锈),但它应该可以工作。
-
@Xonar:很确定你不能散列包含不可散列项的元组
-
是的,是的。 (我确实说过我的 python 生锈了 :))但是您可以递归地将不可散列的项目添加到元组中。例如将 (1,2,[2,3]) 转换为 (1,2,(2,3)) 感谢您指出这一点。
标签: java python object-identity