Wolfram Mathematica中是否有HashTable结构?

我想要使​​用像HashTable这样的结构。 Wolfram Mathematica中是否有类似的结构?


更新: Mathematica版本10引入了Association数据结构(教程)。


有许多可能性。 如果不需要添加或删除表中的键或更改关联值,最简单的方法是使用左侧的键和右侧的值构造一个规则列表手边,并使用Dispatch

如果您确实需要更改表中的条目,则可以使用符号的DownValues作为哈希表。 这将支持散列表通常使用的所有操作。 这是做这件事最直接的方法:

(* Set some values in your table.*) 
In[1]:=  table[a] = foo; table[b] = bar; table[c] = baz;

(* Test whether some keys are present. *)
In[2]:=  {ValueQ[table[a]], ValueQ[table[d]]}
Out[2]:= {True, False}

(* Get a list of all keys and values, as delayed rules. *)
In[3]:=  DownValues[table]
Out[3]:= {HoldPattern[table[a]] :> foo, HoldPattern[table[b]] :> bar,
HoldPattern[table[c]] :> baz}

(* Remove a key from your table. *)
In[4]:=  Unset[table[b]]; ValueQ[table[b]]
Out[4]:= False

我会说,你可以从框中得到最类似的结构是稀疏数组。


我同意Pillsy,但也看到这个答案:

Mathematica降价Lhs

它包含一个方便的函数来获取散列表的键。

链接地址: http://www.djcxy.com/p/35571.html

上一篇: Is there HashTable structure in Wolfram Mathematica?

下一篇: Mathematica "linked lists" and performance