在嵌套列表中如何测试给定的索引序列在mathematica中是否有效

时间:2011-01-27 19:36:20

标签: wolfram-mathematica

我在mma中有一个高度不规则的嵌套列表myList,只要给出一个整数序列,例如任何长度的1,1,2,3,1,我想知道是否

myList[[1,1,2,3,1]]

有效;因为如果不是,那么我会收到错误说

Part::partw: part... does not exist

感谢。

3 个答案:

答案 0 :(得分:3)

   Quiet[
       Check[mylist[[1, 1, 2, 3, 1]], Print[False], Part::partd], 
   Part::partd];  

您可以将Print [False]替换为任何其他操作......

修改

要检查 partd partw 消息,语法为:

Quiet[Check[{{{1, 3}}, {2}}[[1, 4, 2, 3, 1]], 
    Print[False], {Part::partd, Part::partw}], 
   {Part::partd, Part::partw}];

HTH!

答案 1 :(得分:3)

几周前,MathGroup就出现了这种情况。以下是我认为最后和最佳回复的URL(来自Ray Koopman)。

http://forums.wolfram.com/mathgroup/archive/2011/Jan/msg00326.html

它还包含指向同一主题中早期帖子的链接。

Daniel Lichtblau

Wolfram Research

答案 2 :(得分:0)

这是另一种方法。

Quiet[MemberQ[#, #[[1, 4, 2, 3, 1]], Infinity] &[{{{1, 3}}, {2}}]]

返回False。

在检查该位置的元素(如果存在)是否在列表中之后,它将基本上返回true或false。

Quiet[MemberQ[#, #[[1, 1, 2]], Infinity] &[{{{1, 3}}, {2}}]]

返回True。

但是,belisarius的答案会给予更多的低级控制。