3

オブジェクト値と文字列キーを含む辞書があります。

dict{
'key1': object_1
'key2': object_2
}

そして、私はそれを次のように変換したいと思います:

dict{
'key1': str(object_1)
'key2': str(object_2)
}

str(object_1) は object_1 の文字列表現です。この変換を実行する最も単純で最もpythonicな方法は何ですか?

4

6 に答える 6

10
dict((k, str(v)) for k, v in d.iteritems())

または Python2.7+ の場合:

{k: str(v) for k, v in d.items()}

より複雑な dict の場合 (オブジェクトのタプルを値として使用):

dict((k, tuple(str(x) for x in v)) for k, v in d.iteritems())

{k: tuple(str(x) for x in v) for k, v in d.items()}
于 2012-05-21T14:31:48.247 に答える
3

eurimo が言ったこと、またはコピーを作成したくない場合:

for k in d:
   d[k] = str(d[k])
于 2012-05-21T14:34:02.580 に答える
2

辞書内包表記の使用:

{ k : str(v) for k, v in d.iteritems() }

上記は Python 2.7 以降で機能し、ジェネレーターを使用して新しい辞書を生成します。Python 3 の場合、これは同様に機能します。

{ k : str(v) for k, v in d.items() }
于 2012-05-21T14:33:47.090 に答える
1

次の Python for ループで問題が解決するはずです。

for item in d.keys():
   d[item]=str(d[item])
于 2012-05-21T14:34:12.987 に答える
1

これを使用して、辞書の組み込みメソッドを使用せずにそれを実現することもできます。

x={ z : str(x[z]) for z in x }

于 2012-05-21T15:54:58.657 に答える
0

あなたの質問と同様のことをしなければなりませんでしたが、私の解決策は少し長いと思います。

new_dict=dict([(item[0],str(item[1])) for item in d.items()])

お役に立てれば

于 2012-05-21T17:20:47.217 に答える