-1

availableexits という名前の列を持つ CSV があります。したがって、そのデータは次のとおりです。「N = 1、E = 4、S = 7」

私はそれをdictに入れたいので、次のようになります:

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']]

そしてdictとしてキャストします

e = dict(h) #looks very German

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

使用時に値をintにキャストするだけです。

私はこのようにそれをするために恐ろしい人だと感じています. より良い方法は何ですか。

4

1 に答える 1

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(',')))
于 2013-08-07T01:40:37.270 に答える