嗨,我在Elixir中寻找转置功能.例如,我有这种数组a
,在调用函数后,结果应为b
:
a = [[1, 2], [3, 4], [5, 6]]
b = transpose(a)
b => [[1, 3, 5], [2, 4, 6]]
Run Code Online (Sandbox Code Playgroud)
Iva*_*zik 11
在Elixir中有(仍然)不是一个,但你可以使用:
def transpose(rows) do
rows
|> List.zip
|> Enum.map(&Tuple.to_list/1)
end
Run Code Online (Sandbox Code Playgroud)
Osk*_*kar 11
从 Elixir v1.12 开始,您可以使用以下命令转置二维列表:
Enum.zip_with(list, &Function.identity/1)
Run Code Online (Sandbox Code Playgroud)
bit*_*ker 10
Elixir目前没有一个,但您可以创建自己的:
def transpose([]), do: []
def transpose([[]|_]), do: []
def transpose(a) do
[Enum.map(a, &hd/1) | transpose(Enum.map(a, &tl/1))]
end
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1793 次 |
最近记录: |