【问题标题】:return a list consisiting of the elements from tuples返回一个由元组中的元素组成的列表
【发布时间】:2010-12-14 23:31:53
【问题描述】:

如何返回,例如元组的第一个元素?

我想获取一个包含 2 个元素元组的列表,并将每个元组的第二个元素作为新列表返回。

【问题讨论】:

    标签: erlang


    【解决方案1】:
    1> P = {adam,24,{july,29}}.
    {adam,24,{july,29}}
    2> element(1,P).
    adam
    3> element(3,P).
    {july,29}
    

    另请参阅:http://www.erlang.org/doc/reference_manual/data_types.html#id2259804

    【讨论】:

      【解决方案2】:

      你可以使用 lists:map(虽然不像列表理解那么简单):

      lists:map(fun({_,X}) -> X end, [{a,b},{c,d},{e,f}])。

      【讨论】:

      • 我认为值得注意的是,这可能在处理不良数据时表现最佳,这可以证明看起来稍微复杂的语法是合理的。
      【解决方案3】:

      正是您所问的:
      666> [元素(2,X)|| X [2,4]

      【讨论】:

      【解决方案4】:

      嗯,没错,element/2 + 理解会起作用。但最好的方法是模式匹配:

      [ 变量2 || {_Var1, Var2}

      由于代码简单,每个模式匹配都优于函数调用。

      因此,您所拥有的是列表理解(列表内的双管道)。在管道(右侧)之前有发电机,左侧是产品。

      一般:

      列表 = [ ReturnedValue = some_function(X) || X

      【讨论】:

      猜你喜欢
      • 2021-08-12
      • 1970-01-01
      • 2016-08-06
      • 2021-06-29
      • 1970-01-01
      • 2021-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多