Filtrage par motif avec les associations
La version 11 introduit plusieurs fonctions pour simplifier la manipulation et le filtrage par motif des associations.
Utilisez KeyMemberQ et KeyFreeQ pour tester si oui ou non une clé fait partie d'une association.
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 vous permet de faire correspondre une association complète contenant une ou plusieurs règles données.
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]=
Calculez les données du champ gravitationnel en plusieurs points de la Terre.
In[5]:=
points = {{40, -100, 691}, {30, -120, 560}, {80, 70, 91}};
data = GeogravityModelData /@ points
Out[5]=
Sélectionnez les cas pour lesquels l'amplitude du champ est supérieure à la valeur moyenne standard.
In[6]:=
Cases[data,
KeyValuePattern[
"Magnitude" -> _?(GreaterThan[
Quantity[1, "StandardAccelerationOfGravity"]])]]
Out[6]=
Utilisez KeyValueMap pour continuer à traiter chaque paire clé-valeur.
In[7]:=
Cases[data,
KeyValuePattern[
"Magnitude" -> _?(GreaterThan[
Quantity[1, "StandardAccelerationOfGravity"]])]];
KeyValueMap[
EntityProperty["GeogravityModel", #1] ->
UnitConvert[#2, "Imperial"] &, First[%]]
Out[7]=