如何在列表中获取元组?

时间:2016-12-05 19:40:07

标签: erlang

我想知道如何使用列表:filter从元组列表中获取特定元组。
我的代码是:




 <代码> myFilter(项目,列表) - &GT;&#XA; MyItems = lists:map(fun(X) - &gt; element(2,X)end,List),&#xA; lists:filter(fun() - &gt; lists:member(Item,MyItems)end,List)。&#xA;  
&#xA;&#xA;

示例:

&#XA;&#XA;
 <代码> myFilter(1,[{atom1,1, “P1”},{atom2,2, “P1”},{atom3,3, “P3”} ])= {atom1,1,“P1”}&#xA;  
&#xA;

1 个答案:

答案 0 :(得分:4)

lists:keyfind就是为了这个! lists:keyfind(1, 2, List)将返回列表中第一个元组为1的第一个元组,如果它找不到,则返回false

1> List = [{atom1,1,"P1"},{atom2,2,"P1"},{atom3,3,"P3"}].
[{atom1,1,"P1"},{atom2,2,"P1"},{atom3,3,"P3"}]
2> lists:keyfind(1, 2, List).
{atom1,1,"P1"}