0xA*_*xAX 1 erlang list filter
我有清单 - Sep1:
[
....
["Message-ID", "AAAAAAAAAAAAAAAAAAA"],
["To", "BBBBBBBBBBBBBBBBB"]
...
]
Run Code Online (Sandbox Code Playgroud)
我尝试获取第一项= Message_ID的元素,例如:
lists:filter(fun(Y) -> (lists:nth(1,lists:nth(1,Y)) =:= "Message-ID") end, Sep1).
Run Code Online (Sandbox Code Playgroud)
但我得到错误:
exception error: no function clause matching lists:nth(1,[])
in function utils:'-parse_to/1-fun-1-'/1
in call from lists:'-filter/2-lc$^0/1-0-'/2
Run Code Online (Sandbox Code Playgroud)
但如果我:
io:format(lists:nth(1,lists:nth(1,Sep1))).
> Message-ID
Run Code Online (Sandbox Code Playgroud)
怎么了?
谢谢.
这是更好地改变代表权[{Key, Value}, ...]
,因此您可以用列表:*键功能,proplists模块,或将其转换为字典与词典:from_list/1.
但是如果您仍然想使用列表:filter/2,您可以按第一个元素过滤列表列表,如下所示:
lists:filter(fun ([K | _]) -> K =:= "Message-ID" end, ListOfLists).
Run Code Online (Sandbox Code Playgroud)
如果要提取第一个元素与"Message-ID"匹配的列表尾部,可以使用列表推导:
[Tail || ["Message-ID" | Tail] <- ListOfLists].
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5085 次 |
最近记录: |