List Elixir:根据索引从列表中选择多个元素

List Elixir:根据索引从列表中选择多个元素,list,elixir,enumerable,List,Elixir,Enumerable,假设我有一个列表,是否有一个内置的操作符或函数来根据索引列表选择元素 例如,像这样的运算符[“a”、“b”、“z”]=字母表[0,1,25] 这方面的一个简单实现可能是: def select(list, indices) do Enum.map(indices, &(Enum.at(list, &1))) end 如果它不存在,这是否是故意的省略,以避免列表被视为数组 如果我问错了问题,我想举一个例子来说明我的想法:给定一个列表,我想选择第一个、中间个和最后一个元素,然后

假设我有一个列表,是否有一个内置的操作符或函数来根据索引列表选择元素

例如,像这样的运算符
[“a”、“b”、“z”]=字母表[0,1,25]

这方面的一个简单实现可能是:

def select(list, indices) do
  Enum.map(indices, &(Enum.at(list, &1)))
end
如果它不存在,这是否是故意的省略,以避免列表被视为数组


如果我问错了问题,我想举一个例子来说明我的想法:给定一个列表,我想选择第一个、中间个和最后一个元素,然后计算三个元素的中间值。我在做
length(list)
来计算长度,然后我想使用这个操作符/函数来选择我感兴趣的三个元素。

据我所知,内置操作符不存在。每次我必须在一个列表中获取几个元素时,我都使用与您相同的实现。这是相当短和简单的重建,我怀疑这是为什么没有现成的解决方案在长生不老药

我能想到的另一个原因是,正如您所指出的,列表不是数组:当您想要访问一个元素时,您必须访问它之前的所有元素,因此通过索引列表访问元素并不是一个相关的函数,因为列表并没有优化为以这种方式使用

尽管如此,我还是经常访问带有索引列表的元素列表,这意味着我可能没有正确使用elixir