Erlang 列表生成

发布于 2024-10-16 20:15:18 字数 562 浏览 2 评论 0原文

我有 2 个清单:

[“asd”,“dsa”]。

[[123,“asd”],[4534,“fgh”]]。

我如何生成下一个列表:我 ned 列出每个嵌套列表的尾部 =:= 1 个列表的其他元素。

在这个例子中:

[“asd”,“dsa”]。

[[123,“asd”],[4534,“fgh”]]。

“asd”=:=“asd”->

输出列表:

[123, "asd"] 

我尝试:

这里S = [[123,“asd”],[4534,“fgh”]]。 D = [“asd”,“dsa”]。

列表 = 列表:过滤器(fun(X) -> 列表:last(X) =:= D end, S),

但是此示例列表中的 D,我需要列表的元素。

怎样才能做到呢?

I have 2 list:

["asd", "dsa"].

[[123, "asd"], [4534, "fgh"]].

How can i generate next list: I ned list that tail of each nested list =:= other element of 1 list.

In this example:

["asd", "dsa"].

[[123, "asd"], [4534, "fgh"]].

"asd" =:= "asd" ->

Output list:

[123, "asd"] 

I try:

Here S = [[123, "asd"], [4534, "fgh"]].
D = ["asd", "dsa"].

List = lists:filter(fun(X) ->
lists:last(X) =:= D end, S),

But D in this example list, and i need element of list.

How can do it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

天冷不及心凉 2024-10-23 20:15:18

也许是这样的:

1> [X || X<-[[1,2,4],[7,8,3],[2,5,4],[9,1,6]], Y<-[4,3], lists:last(X)=:=Y].    
[[1,2,4],[7,8,3],[2,5,4]]

或者,使用您的示例数据:

2> [X || X<-[[123,"asd"], [4534,"fgh"]], Y<-["asd","dsa"], lists:last(X)=:=Y].
[[123,"asd"]]

Maybe something like:

1> [X || X<-[[1,2,4],[7,8,3],[2,5,4],[9,1,6]], Y<-[4,3], lists:last(X)=:=Y].    
[[1,2,4],[7,8,3],[2,5,4]]

Or, using your sample data:

2> [X || X<-[[123,"asd"], [4534,"fgh"]], Y<-["asd","dsa"], lists:last(X)=:=Y].
[[123,"asd"]]
凉宸 2024-10-23 20:15:18

稍微更直接的编写方式是:

lists:filter(fun (X) -> lists:member(lists:last(X), D) end, S).

或使用列表推导式:

[ X || X <- S, lists:member(lists:last(X), D) ].

它们速度更快一些,因为如果找到元素,它们不会尝试与 D 中的更多元素进行匹配。在推导式中扩展 D 就可以做到这一点。

A slightly more direct way of writing it would be:

lists:filter(fun (X) -> lists:member(lists:last(X), D) end, S).

or with list comprehensions:

[ X || X <- S, lists:member(lists:last(X), D) ].

They are a little faster as they will not attempt to match against more elements in D if the element is found. Expanding D in the comprehension will do this.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文