对两个列表进行排序,忽略任何非数字值?

时间:2012-03-29 14:17:52

标签: wolfram-mathematica

相对较新的Mathematica,所以这可能是一个简单的问题。有两个列表我需要按其中一个列表排序,而忽略任何非数字值

示例:

x={a, b, c, d, e, f, g};
y={-2, Indeterminate, -3, -Infinity, -1, Apples, 5};

(还有z =分区[Riffle [x,y],2],如果这样做更好一点)

寻找结果:

xn={g, e, a, c}
yn={5, -1, -2, -3}

(或zn相当于使用z)

1 个答案:

答案 0 :(得分:3)

这是一种方式:

Transpose@Reverse@SortBy[Cases[Transpose[{y, x}], {_?NumericQ, _}], First]

返回

  

{{5,-1,-2,-3},{g,e,a,c}}