【问题标题】:Julia: Functional Programming :Validate array entries against another array of valuesJulia:函数式编程:根据另一个值数组验证数组条目
【发布时间】:2020-06-29 23:10:41
【问题描述】:

我正在尝试创建一个单行列,用于根据一组值过滤数组。这意味着我想循环遍历 A 的每个元素并与 B 的元素进行比较。

例如:喝什么是安全的?

A = ["water";"beer";"ammonia";"bleach";"lemonade"]
B = ["water";"beer"; "lemonade"]

我把这个怪物拍打在一起,但我希望有人有更优雅的方法:

julia> vcat(filter(w->length(w)!= 0, map(y->filter(z->z!="",(map(x-> begin x==y ? x = y : x = ""  end,B))),A))...)
3-element Array{String,1}:
 "water"
 "beer"    
 "lemonade"

【问题讨论】:

    标签: arrays functional-programming julia higher-order-functions


    【解决方案1】:

    您可以使用filter 遍历可用的饮料,并使用in 检查当前元素是否在安全饮料列表中:

    julia> drinks = ["water", "beer", "bleach"];
    
    julia> safe = ["beer", "lemonade", "water"];
    
    julia> filter(in(safe), drinks)
    2-element Array{String,1}:
     "water"
     "beer"
    

    【讨论】:

      【解决方案2】:

      filter 方法非常简洁。您也可以使用推导式:

      [a for a in A if a in B]
      

      【讨论】:

        猜你喜欢
        • 2019-04-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-20
        相关资源
        最近更新 更多