【发布时间】:2017-06-18 03:31:23
【问题描述】:
我有一个有趣的情况。我在一个列表上循环了好几次,但我不知道如何生成我想要的列表。我实际上是在尝试根据外部列表的顺序对元组列表中的第二个元组进行排序。
aclist = [{2,4},{2,6},{4,1},{4,8},{1, 2},{1,5},{3,3},{3,7}]
plist = [1,2,3,4]
newplist =
for pid <- plist do
Enum.map(aclist, fn({p_id,c_id}) ->
if p_id == pid do
c_id
end
end)
end
这段代码的输出是:
[[2, 5, nil, nil, nil, nil, nil, nil], [nil, nil, 4, 6, nil, nil, nil, nil],
[nil, nil, nil, nil, 3, 7, nil, nil], [nil, nil, nil, nil, nil, nil, 1, 8]]
我需要输出为[2,5,4,6,3,7,1,8],但这需要我在嵌套循环中再次循环以提取这些数字。所以很明显我遗漏了一些东西,我如何循环它并第一次提取正确的数据?
【问题讨论】:
标签: functional-programming elixir