2014-09-17 35 views

Odpowiedz

11

tak:

keys = ["a", "b", "j"] 
vals = [1, 42, 9] 
yourdic = Dict(zip(keys, vals)) 

Zwracany Dict będzie od rodzaju Dict{String, Int} (tj Dict{String, Int64} w moim systemie), ponieważ klucze jest wektorem String s oraz Vals jest wektorem Int s.

Jeśli chcesz, aby Dict miał mniej konkretnych typów, np. AbstractString i Real można zrobić:

Dict{AbstractString, Real}(zip(keys, vals)) 

Jeśli masz pary w jednej tablicy:

dpairs = ["a", 1, "b", 42, "j", 9] 

można zrobić:

Dict(dpairs[i]=>dpairs[i+1] for i in 1:2:length(dpairs)) 

taką samą składnię jak wyżej dotyczy mniej konkretnych typów, np .:

Dict{Any, Number}(dpairs[i]=>dpairs[i+1] for i in 1:2:length(dpairs)) 
+1

Czy mógłbyś zaktualizować swoją odpowiedź za pomocą zip? Mam przestarzałe ostrzeżenie. 'OSTRZEŻENIE: Dict {K, V} (ks :: AbstractArray {K}, vs :: AbstractArray {V}) jest przestarzały, zamiast niego użyj Dict {K, V} (zip (ks, vs)). – Aung

+0

@Aung zrobione, okrzyki. – JobJob

0

Nie znam Julii - ale jeśli Julia ma zip, to powinno działać: dict(zip(keys,vals)).

(wyznanie: tak można to zrobić w pytonie).

Powiązane problemy