2016-12-05 4 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"} 
관련 문제