如何在mathematica中的列表中获取奇怪的索引元素

时间:2011-01-27 05:40:24

标签: wolfram-mathematica

如何获取列表中奇怪的索引元素?我在想Select,但是没有找到任何返回元素位置的东西,特别是考虑到列表中有重复的元素。

另外一般来说,如何选择索引满足某些条件的那些元素?

3 个答案:

答案 0 :(得分:13)

除了@belisarius's answer之外,还有一些不需要计算Length[lis]的内容:

Take[lis, {1, -1, 2}]

lis[[1 ;; -1 ;; 2]]

您经常可以使用-1来表示“最后”位置。

答案 1 :(得分:12)

有很多方法,其中一些是:

In[2]:= a = Range[10];le = Length@a;

In[3]:= Table[a[[i]], {i, 1, le, 2}]

In[5]:= Pick[a, Table[Mod[i, 2], {i, 1, le}], 1]

In[6]:= a[[1 ;; le ;; 2]]

通常,使用Pick [](作为示例),您可以为任何可以想到的索引蒙版建模。

答案 2 :(得分:6)

出于某种原因,答案中省略了Span的简洁形式。

Range[20][[;;;;2]]
{1, 3, 5, 7, 9, 11, 13, 15, 17, 19}

Quoting the documentation

;;;;k 
from the beginning to the end in steps of k.