我已将文件读入列表,例如文件的格式为:
blue
yellow
green
red
现在我想找到项目“绿色”的位置(索引),如果正确完成,结果将是“3”,因为它是列表中的第3项。
也许我不擅长搜索谷歌,但我无法在任何地方找到解决方案:/所以整个想法是:
if (item.exists(List, "green")) {
index = indexOf(List, "green")
}
首先我必须知道它是否存在才能得到它的索引。此外,我正在努力做到这一点,而不必做任何我必须打电话的新功能。
感谢您的帮助
答案 0 :(得分:2)
一种方法是使用拉链来装饰列表中的数字:
L = [blue, yellow, green, red],
case lists:keyfind(green, 1, lists:zip(L, lists:seq(1, length(L))) of
false -> not_there;
{green, Idx} -> {found, Idx}
end,
...
(未经测试)
问题是你想要一个索引。我们很少(如果有的话)在erlang程序中使用索引。相反,我们可能将列表表示为一组:
Set = sets:from_list(L),
case sets:is_element(green, Set) of
true -> ...;
false -> ...
end,