Wolfram Language

Kern-Sprache

Pattern Matching mit Assoziationen

In Version 11 werden einige Funktion eingeführt, die die Bearbeitung und musterbasierte Suche von Assoziationen vereinfachen.

Testen Sie mit KeyMemberQ und KeyFreeQ, ob ein Schlüssel Teil einer Assoziation ist.

In[1]:=
Click for copyable input
KeyMemberQ[<|a -> 1, b -> 2, c -> 3|>, a]
Out[1]=
In[2]:=
Click for copyable input
KeyFreeQ[<|a -> 1, b -> 2, c -> 3|>, a]
Out[2]=

Mit KeyValuePattern können Sie nach einer vollständigen Assoziation suchen, die eine oder mehreren bestimmte Regeln hat.

In[3]:=
Click for copyable input
MatchQ[<|a -> 1, b -> 2, c -> 3|>, KeyValuePattern[b -> _]]
Out[3]=
In[4]:=
Click for copyable input
MatchQ[<|a -> 1, b -> 2, c -> 3|>, KeyValuePattern[{c -> _, a -> _}]]
Out[4]=

Berechnen Sie Daten zum Gravitationsfeld an mehreren Punkten auf der Erde.

In[5]:=
Click for copyable input
points = {{40, -100, 691}, {30, -120, 560}, {80, 70, 91}}; data = GeogravityModelData /@ points
Out[5]=

Wählen Sie die Fälle aus, in denen die Feldstärke größer ist als der Durchschnittswert.

In[6]:=
Click for copyable input
Cases[data, KeyValuePattern[ "Magnitude" -> _?(GreaterThan[ Quantity[1, "StandardAccelerationOfGravity"]])]]
Out[6]=

Verwenden Sie KeyValueMap, um jedes Schlüssel-Wert-Paar weiter zu verarbeiten.

In[7]:=
Click for copyable input
Cases[data, KeyValuePattern[ "Magnitude" -> _?(GreaterThan[ Quantity[1, "StandardAccelerationOfGravity"]])]]; KeyValueMap[ EntityProperty["GeogravityModel", #1] -> UnitConvert[#2, "Imperial"] &, First[%]]
Out[7]=

Verwandte Beispiele

en es fr ja ko pt-br ru zh