我正在寻找一个匹配由相同(等于[])原子对象意义组成的列表(可能为空)的模式,但我无法弄清楚。任何帮助将不胜感激。匹配相同元素列表的模式
7
A
回答
12
所有响应,到目前为止,似乎错过了匹配对象需要为原子的要求。下面做到这一点:
Cases[testList, {a___?AtomQ} /; Equal[a]]
如果你没有在Equal
感,你也可以使用定义相同:
Cases[testList, {(a_?AtomQ) ...}]
有了一个稍微修改测试列表,你会看到其他方法不符合要求
testList = {{1, 1.0, 1.0}, {a, b, c}, {Exp[Pi] + 1, Exp[Pi] + 1, Exp[Pi] + 1}, {}, {3}};
它们都不正确地匹配第三个元素。
9
这是否适合您?
testList = {
{1, 1.0, 1.},
{a, b, c},
{0, Exp[Pi*I] + 1.0, Sin[Pi]}
}
Cases[testList, _List?(Equal @@ # &)]
+0
我不知道为什么,但我通常会忘记'_?(cond)'语法。记住它的好例子。 –
6
使用Condition
,而不是PatternTest
:
In[31]:= testList = {{1, 1.0, 1.}, {a, b, c}, {0, Exp[Pi*I] + 1.0,
Sin[Pi]}, {}, {3}};
Cases[testList, {a___} /; Equal[a]]
Out[32]= {{1, 1., 1.}, {0, 0., 0}, {}, {3}}
(和扩大的测试用例马克的名单上覆盖空单列表。)
相关问题
- 1. 列表元素上的模式匹配
- 2. Scala模式匹配:如何匹配列表中的元素?
- 3. 不同列表中的元素匹配
- 4. 模式匹配列表尾部元组元素
- 5. 在javascript中匹配相同的元素
- 6. 与Haskell中的2个元素匹配的模式匹配列表
- 7. 如何在prolog中模式匹配列表中的元素?
- 8. Ocaml模式一次匹配列表中的多个元素
- 9. 从元素列表中找到匹配的模式
- 10. 模式匹配找到列表的最后一个元素
- 11. 如何对列表中的元素使用模式匹配?
- 12. Python中模式匹配后的打印列表元素
- 13. 通过模式匹配替换列表元素
- 14. 模式匹配相同的值
- 15. 模式匹配列表
- 16. OCaml列表匹配模式
- 17. 模式匹配Haskell列表
- 18. 正则表达式来匹配相同数字的模式
- 19. 与TR元素的bgcolor属性相匹配的XPath表达式
- 20. 2个列表上的匹配元素
- 21. Python,匹配两个列表的元素
- 22. Jquery检查匹配的元素列表
- 23. 混合和匹配表元素和表格样式的元素
- 24. Haskell,一个列表中的两个元素后跟一个元素的其他列表? (模式匹配)
- 25. 2列表 - 选中复选框元素相匹配的 - C#MVC
- 26. 正则表达式来查找匹配列表中的元素
- 27. 与列表元素匹配的元组元素
- 28. 正则表达式匹配模式和组正确元素
- 29. Selenium要匹配的元素列表要匹配的格式数组值
- 30. JavaScript正则表达式元素匹配
按照模式,你的意思是正则表达式吗? – Dan
您是否尝试过使用PatternSequence? http://reference.wolfram.com/mathematica/ref/PatternSequence.html –
@丹I Mathematica有_patterns_,即用于匹配Mathematica语言/数据结构的表达式,以及用于_strings_的'StringExpression'和'RegularExpression' 。红色似乎指的是模式。 –