當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。