2016-12-13 37 views
0

在Julia編程語言中,從字典中獲取元組數組的最佳方式是什麼?我希望第一個元素是關鍵,第二個元素是值。 我有以下幾點,但我不知道這是否是Julia最好的方法。將字典轉換爲Julia中的Array {Tuple}

a = [(k,v) for (k,v) in d] 

其中d是字典。

順便說一句,如果我做

a = [t for t in d] 

我得到k=>v對象的數組。例如,如果我詢問typeof(3=>'3'),我會得到Tuple{Int64,Char},但它不會打印爲(3,'3')k=>v(k,v)之間的區別究竟是什麼?它只是語法糖嗎?

+0

這對我來說似乎是一個很好的方法! –

+0

我同意@AlexanderMorley。我嘗試了你的第一種方法,它工作正常。如果你不滿意,也許你可以澄清你想看到的輸出......? –

+0

我是新來的Julia(來自python),我還不熟悉該語言的一些微妙之處。我的意思是,我更喜歡使用生成器而不是創建臨時數組的非優雅方法,就像有時用Python那樣,如果你以天真的方式來做(我正在處理非常大的Dicts)。 – eguaio

回答

2

您也可以使用collect(d),它再次給出k=>v形式的Pair的數組。

這些可以被索引,就好像它是一個元組:

julia> p = 3=>4 
3=>4 

julia> p[1] 
3 

julia> p[2] 
4 

julia> a, b = p 
3=>4 

julia> a 
3 

julia> b 
4 

所以它有效地行爲就像有兩個條目的元組。 但是,如果需要Tuple,則無法使用。

+0

由於使用了內置函數,因此它看起來優雅而快速。 – eguaio