Сравнение образцов с ассоциациями
Версия 11 представляет несколько функций для упрощения манипуляции и соотношения образцов ассоциаций.
Используйте KeyMemberQ и KeyFreeQ для проверки того, является ли ключ частью ассоциации.
In[1]:=

KeyMemberQ[<|a -> 1, b -> 2, c -> 3|>, a]
Out[1]=

In[2]:=

KeyFreeQ[<|a -> 1, b -> 2, c -> 3|>, a]
Out[2]=

KeyValuePattern позволяет Вам соотнести законченную ассоциацию, содержащую два или больше заданных правила.
In[3]:=

MatchQ[<|a -> 1, b -> 2, c -> 3|>, KeyValuePattern[b -> _]]
Out[3]=

In[4]:=

MatchQ[<|a -> 1, b -> 2, c -> 3|>, KeyValuePattern[{c -> _, a -> _}]]
Out[4]=

Рассчитайте данные о гравитационном поле в нескольких точках Земли.
In[5]:=

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

Выберите случаи, для которых магнитуда поля больше, чем общее среднее значение.
In[6]:=

Cases[data,
KeyValuePattern[
"Magnitude" -> _?(GreaterThan[
Quantity[1, "StandardAccelerationOfGravity"]])]]
Out[6]=

Используйте KeyValueMap для дальнейшей обработки каждой пары "ключ-значение".
In[7]:=

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