当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Julia replace方法用法及代码示例


用法一

replace(A, old_new::Pair...; [count::Integer])

返回集合 A 的副本,其中对于 old_new 中的每一对 old=>new ,所有出现的 old 都将替换为 new 。使用 isequal 确定相等性。如果指定了count,则总共最多替换count

结果的元素类型是根据 A 的元素类型和成对的 new 值的类型使用提升(参见 promote_type )选择的。如果省略 count 并且 A 的元素类型是 Union ,则结果的元素类型将不包括被替换为不同类型的值的单例类型:例如,Union{T,Missing} 将变为 T 如果 missing 被替换。

另见 replace! splice! delete! insert!

Julia 1.7

需要 1.7 版来替换 Tuple 的元素。

例子

julia> replace([1, 2, 1, 3], 1=>0, 2=>4, count=2)
4-element Vector{Int64}:
 0
 4
 1
 3

julia> replace([1, missing], missing=>0)
2-element Vector{Int64}:
 1
 0

用法二

replace(new::Function, A; [count::Integer])

返回 A 的副本,其中 A 中的每个值 x 都替换为 new(x) 。如果指定了count,则总共最多替换count 值(替换定义为new(x) !== x)。

Julia 1.7

需要 1.7 版来替换 Tuple 的元素。

例子

julia> replace(x -> isodd(x) ? 2x : x, [1, 2, 3, 4])
4-element Vector{Int64}:
 2
 2
 6
 4

julia> replace(Dict(1=>2, 3=>4)) do kv
           first(kv) < 3 ? first(kv)=>3 : kv
       end
Dict{Int64, Int64} with 2 entries:
  3 => 4
  1 => 3

用法三

replace(s::AbstractString, pat=>r, [pat2=>r2, ...]; [count::Integer])

搜索给定的模式pats, 并将每次出现的地方替换为r.如果count提供,最多更换count发生。pat可以是单个字符、向量或一组字符、字符串或正则表达式。如果r是一个函数,每次出现都替换为r(s)其中s是匹配的子字符串(当pat是一个AbstractPattern或者AbstractString)或字符(当pat是一个AbstractChar或集合AbstractChar)。如果pat是一个正则表达式并且r是一个SubstitutionString,然后在r替换为对应的匹配文本。删除实例patstring, 放r对空String("")。

可以指定多个模式,它们将同时从左到右应用,因此任何字符都只会应用一个模式,并且模式只会应用于输入文本,而不是替换。

Julia 1.7

支持多种模式需要 1.7 版。

例子

julia> replace("Python is a programming language.", "Python" => "Julia")
"Julia is a programming language."

julia> replace("The quick foxes run quickly.", "quick" => "slow", count=1)
"The slow foxes run quickly."

julia> replace("The quick foxes run quickly.", "quick" => "", count=1)
"The  foxes run quickly."

julia> replace("The quick foxes run quickly.", r"fox(es)?" => s"bus\1")
"The quick buses run quickly."

julia> replace("abcabc", "a" => "b", "b" => "c", r".+" => "a")
"bca"

相关用法


注:本文由纯净天空筛选整理自julialang.org 大神的英文原创作品 Base.replace — Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。