2013-08-07 41 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