2016-12-05 129 views
1

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

myFilter(Item,List)-> 
     MyItems = lists:map(fun(X)-> element(2,X) end,List), 
     lists:filter(fun()-> lists:member(Item,MyItems) end , List). 

例子:

myFilter(1,[{atom1,1,"P1"},{atom2,2,"P1"},{atom3,3,"P3"}]) = {atom1,1,"P1"} 

回答

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"} 
相关问题