2016-03-26 16 views
8

Julia'da bir sözlüğü birleştirmenin en iyi yolu nedir?Julia'da, bir sözlük nasıl birleştirilir?

> dict1 = Dict("a" => 1, "b" => 2, "c" => 3) 
> dict2 = Dict("d" => 4, "e" => 5, "f" => 6) 
# merge both dicts 
> dict3 = dict1 with dict2 
> dict3 
Dict{ASCIIString,Int64} with 6 entries: 
    "f" => 6 
    "c" => 3 
    "e" => 5 
    "b" => 2 
    "a" => 1 
    "d" => 4 

cevap

7

http://docs.julialang.org/en/latest/stdlib/collections/#Base.Dict

merge(collection, others...) 

Construct a merged collection from the given collections. If necessary, the types of the resulting collection will be promoted to accommodate the types of the merged collections. If the same key is present in another collection, the value for that key will be the value it has in the last collection listed. 

julia> merge(dict1,dict2) 
    Dict{ASCIIString,Int64} with 6 entries: 
     "f" => 6 
     "c" => 3 
     "e" => 5 
     "b" => 2 
     "a" => 1 
     "d" => 4 

merge!(collection, others...) 
Update collection with pairs from the other collections. 

julia> merge!(dict1,dict2) 
Dict{ASCIIString,Int64} with 6 entries: 
    "f" => 6 
    "c" => 3 
    "e" => 5 
    "b" => 2 
    "a" => 1 
    "d" => 4 

julia> dict1 
Dict{ASCIIString,Int64} with 6 entries: 
    "f" => 6 
    "c" => 3 
    "e" => 5 
    "b" => 2 
    "a" => 1 
    "d" => 4 
+1

Sadece dışarı merakı, nasıl böylece anahtar değerlerini çelişkili ele alabileceğinizi ? Eğer 'dict1' içinde 'a = 5' ve 'dict2' de 'a = 7' değerlerine sahip olsaydım, 'a' değeri sonuçtaki sözlükte ne olurdu? – niczky12

+1

@ niczky12, son değer olarak 7'ye güncellenecektir. –

+1

Çakışan değerleri korumak istiyorsanız, sendika (dict1, dict2) 'yi kullanabilirsiniz; ancak bu, bir 'Dict' yerine bir 'Array' döndürür. –