1

これはばかげた質問になると確信しています...私は文字列s = 'P1=12,P2=34,P3=56,P4=78'を個々の変数の束に分割しようとしています:

P1 = 12
P2 = 34
P3 = 56
P4 = 78

s.split(',')私にリストを与えてくれます['P1=12','P2=34','P3=56','P4=78']、それは始まりだと思います。何か案は?

4

3 に答える 3

8

私はこのようなもので行きます:

d = {}
for assignment in s.split(","):
    name, value = assignment.split("=")
    d[name.strip()] = float(value)

これにより、名前を値にマッピングする辞書が得られます。これは、変数を動的に作成するよりもおそらく優れています。私はあなたが本当に後者をやりたいのなら、あなたもすることができます

exec s.replace(",", "\n")

しかし、これは本当に恐ろしいことです。

于 2012-07-18T10:56:25.193 に答える
4

ちょうど二重に分割:

string = 'P1=12,P2=34,P3=56,P4=78'
d = dict( s.split('=') for s in string.split(',') )
# d == {'P2': '34', 'P3': '56', 'P1': '12', 'P4': '78'}

データを何に使用しているかによっては、ルックアップに便利な場合があるため、これらをdictに入れました。

整数としての値が必要な場合は、次のように実行できます。

d = dict( (k, int(v)) for k, v in (s.split('=') for s in string.split(',')) )
于 2012-07-18T11:00:35.440 に答える
0

これを試して:

s = 'A=1,B=2,C=3'
d = dict([i.split('=') for i in s.split(',')])
o = '%s = %s' % (', '.join(d.keys()), ', '.join(d.values()))
exec(o)

print A, B, C
# 1, 2, 3
于 2012-07-18T11:08:02.973 に答える