Elixir:如何获得列表中的最后n项?

时间:2016-07-20 17:00:38

标签: elixir

我有一个清单:

a = [1,2,4,5,6,7,8,9,9,88,88]

在Python中,获取最后n个项目很简单:

a[-n:]

Elixir的等价物?

2 个答案:

答案 0 :(得分:43)

使用带有负值的Enum.take/2

iex(1)> list = [1, 2, 4, 5, 6, 7, 8, 9, 9, 88, 88]
iex(2)> Enum.take(list, -4) |> IO.inspect(charlists: :as_lists)
[9, 9, 88, 88]
  

采取(可枚举,计数)

     

[...] count必须是整数。如果给出了否定count,则会采用最后count个值。 [...]

答案 1 :(得分:7)

如果列表很长,则可能需要使用其他数据类型/数据结构。还有许多其他解决方案,其中有O(log n)而不是O(n)用于获得列表的第n个尾部,例如:https://github.com/baryluk/ral