nac*_*ido 0 indexing element list elixir
我有
>> list = ["a","b","c"]
Run Code Online (Sandbox Code Playgroud)
我需要获取元素的索引并创建一个新列表
>> list_2 = [[1,"a"], [2,"b"], [3,c]]
Run Code Online (Sandbox Code Playgroud)
创建我使用的新列表
lista = Enum.flat_map(list, fn x -> [index,x] end)
Run Code Online (Sandbox Code Playgroud)
但我找不到类似获取“索引”值的函数
Enum.zip/2是你的朋友吗?
list = ~w[a b c]\n#\xe2\x87\x92 ["a", "b", "c"]\n\nlist_2 = Enum.zip(1..3, list)\n#\xe2\x87\x92 [{1, "a"}, {2, "b"}, {3, "c"}]\nRun Code Online (Sandbox Code Playgroud)\n\n或者,如果预先未知尺寸,您可能会
\n\nEnum.zip(Stream.iterate(1, & &1 + 1), list)\n#\xe2\x87\x92 [{1, "a"}, {2, "b"}, {3, "c"}]\nRun Code Online (Sandbox Code Playgroud)\n\n要获取列表而不是元组,只需映射结果
\n\n1\n|> Stream.iterate(& &1+1)\n|> Enum.zip(list)\n|> Enum.map(&Tuple.to_list/1)\n#\xe2\x87\x92 [[1, "a"], [2, "b"], [3, "c"]]\nRun Code Online (Sandbox Code Playgroud)\n\n另一种方法是使用Enum.with_index/1
list\n|> Enum.with_index(1)\n|> Enum.map(fn {e, i} -> [i, e] end)\n#\xe2\x87\x92 [[1, "a"], [2, "b"], [3, "c"]]\nRun Code Online (Sandbox Code Playgroud)\n
list = ["a","b","c"]
list_2 = Enum.with_index(list)
Run Code Online (Sandbox Code Playgroud)
给
[{"a", 0}, {"b", 1}, {"c", 2}]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4280 次 |
| 最近记录: |