我在mma中有一个高度不规则的嵌套列表myList
,只要给出一个整数序列,例如任何长度的1,1,2,3,1
,我想知道是否
myList[[1,1,2,3,1]]
有效;因为如果不是,那么我会收到错误说
Part::partw: part... does not exist
感谢。
答案 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的答案会给予更多的低级控制。