2016-12-05 57 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"} 
相關問題