2013-08-07 63 views
-1

我有一個名爲availableexits的列。它的數據是這樣的: 'N = 1,E = 4,S = 7'從csv單元格中的字符串到字典

我希望把它放在一個字典,所以它看起來像:

d = {'N':1, 'E':4, 'S':7} 

(停在那裏,如果你有一個答案,下面只是表明我如何做到這一點現在)

目前我讀的列數據作爲字符串:

'N=1,E=4,S=7' 

然後我把它分解的逗號G = d.split(「」)

g = ['S=1', 'W=3', 'N=4'] 

然後我分裂各那些對=

h = [] 
for x in g : 
    h.append(x.split("=")) 

#h is now [['N', '1'], ['E', '3'], ['S', '4']] 

,然後鑄造爲一個字典

e = dict(h) #looks very German 

#e is now {'S': '1', 'W': '3', 'N': '4'} 

我只投值爲int當我使用它。

我有一種感覺,我是一個可怕的人這樣做。最好的方法是什麼。

回答

2

您可以使用內涵:

s='N=1,E=4,S=7' 
dict(t.split('=') for t in s.split(',')) 

您可以藉此進一步使值ints

dict((a,int(b)) for a,b in (t.split('=') for t in s.split(','))) 
+0

非常光滑,謝謝。 j = dict([t.split(「=」)for raw.split(「,」)])可以工作,並且更漂亮(更清晰imo)。希望在某處有類似list(formattingString)=> dict方法的東西。 – jason