我想知道如何使用列表:filter从元组列表中获取特定元组。
我的代码是:
&#xA;&#xA;<代码> 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;
答案 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"}