Python字典与对象到字符串与字符串

时间:2012-05-21 14:30:47

标签: python dictionary

我有字典对象值和字符串键:

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

我想将其转换为:

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

其中str(object_1)是object_1的字符串表示形式。执行此转换的最简单,最pythonic的方法是什么?

6 个答案:

答案 0 :(得分:10)

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

或在Python2.7 +中:

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

对于更复杂的dicts(将对象元组作为值):

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()}

答案 1 :(得分:3)

eurimo说了什么,或者如果你不想复制:

for k in d:
   d[k] = str(d[k])

答案 2 :(得分:2)

使用字典理解:

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

以上内容适用于Python 2.7+,它将使用生成器生成新字典。对于Python 3,这将类似地工作:

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

答案 3 :(得分:1)

以下Python for循环可以解决您的问题。

for item in d.keys():
   d[item]=str(d[item])

答案 4 :(得分:1)

您也可以使用它来实现它,而无需使用任何内置的字典方法:

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

答案 5 :(得分:0)

我必须做一些与你的问题相似的事情,但我认为我的解决方案有点长。

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

希望这会有所帮助