我有一个清单:
a = [1,2,4,5,6,7,8,9,9,88,88]
在Python中,获取最后n个项目很简单:
a[-n:]
Elixir的等价物?
答案 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