2015-02-07 52 views
0

我試圖在R中使用hash軟件包來複制python中的字典行爲。我創建像這樣,如何訪問R中哈希env列表中的列表,如Python字典

library(hash) 
titles = hash(NAME = list("exact"=list('NAME','Age'), "partial"=list()), 
       Dt = list("exact"=list('Dt'), "partial"=list()), 
       CC = list("exact"=list(), "partial"=list())) 

我可以訪問鍵使用keys(titles),值使用values(titles)哈希,並使用values(titles['Name'])特定鍵訪問值。

但我如何訪問內部列表的元素?例如list('NAME','Age')? 我需要基於它的名字訪問元素,在這種情況下 - 「確切」,否則我需要知道這個元素屬於哪個外部列表的元素,無論它是「精確」還是「部分」。

+3

'titles $ NAME $ exact;標題$ Dt $確切; title $ CC $ exact'如果你真的需要將Python語法帶入R,'titles [[「NAME」]] [[「exact」]]''。請注意,你可以做同樣的事情,你似乎試圖做的只是'list's:'titles < - list(NAME = list(exact = list('NAME','Age'),partial = list() ),Dt = list(exact = list('Dt'),partial = list())) – hrbrmstr 2015-02-07 22:12:58

+0

謝謝。這樣可行。 :)順便說一句,我不是很清楚如何使用列表中的鍵/值對概念,這就是爲什麼我更喜歡使用在Python中複製字典概念的散列。 – jeevag 2015-02-07 22:24:14

+0

@jeevag你不是很清楚,這與訪問Python字典有何不同?什麼打破?給出具體的代碼示例。 – smci 2015-07-26 23:44:09

回答

0

簡單:

titles[["NAME"]][["exact"]] 

爲hrbmstr寫道。沒有什麼特別的。

在您的嵌套列表中,「精確」和「部分」只是兩個字符串鍵。再一次,他們的名字沒有特殊的魔術意義。另外,這實際上是推薦的正確的R語法(特別是當鍵是可變的時),它不會「帶來糟糕的Python語法」。