繁体   English   中英

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

[英]Elixir: Select mupliple elements from a list based on index

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

例如,运算符类似["a", "b", "z"] = alphabet[0, 1, 25]

一个简单的实现可能是:

def select(list, indices) do
  Enum.map(indices, &(Enum.at(list, &1)))
end

如果不存在,这是否是故意遗漏,以避免将列表视为数组?

如果我问错了一个例子,我正在尝试做的事情使我想要这个:给出一个列表,我想选择第一个,中间和最后一个元素,然后计算这三个元素的中位数。 我正在使用length(list)来计算长度,然后我想使用此运算符/函数来选择我感兴趣的三个元素。

据我所知,内置运算符不存在。 每次我必须获取列表中的几个元素时,我都会使用与您相同的实现。 重新创建非常短且简单,我怀疑这是e剂中没有现成解决方案的原因。

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

仍然我经常访问带有索引列表的元素列表,这意味着我可能没有以正确的方式使用长生不老药。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM