开发者

In Mathematica, how can I find patterns that include rules and lists?

Example:

test = {"a" -> {{1}, 12开发者_JAVA百科}, "b" -> {13}}

I'd like to find all expressions in the list with this pattern:

_ -> {_,_}

The first element, "a" -> {{1}, 12}, is represented by this pattern.

However, none of these expressions work:

Cases[test,_->{_,_}], Cases[test,_->_], Cases[test,Rule[_,_]], etc.

Any advice would be appreciated.


What you're looking for is HoldPattern:

In[1]:= test = {"a" -> {{1}, 12}, "b" -> {13}};

In[2]:= Cases[test, HoldPattern[_ -> {_, _}]] // InputForm
Out[2]= {"a" -> {{1}, 12}}

EDIT: This also works with named pattern variables.

In[3]:= Cases[test, HoldPattern[_ -> {x_, _}] :> x]
Out[3]= {{1}}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜