将带有对象的Python字典转换为带有字符串的字典
我有一个包含对象值和字符串键的字典:将带有对象的Python字典转换为带有字符串的字典,python,dictionary,Python,Dictionary,我有一个包含对象值和字符串键的字典: dict{ 'key1': object_1 'key2': object_2 } 我想把它转换成: dict{ 'key1': str(object_1) 'key2': str(object_2) } 其中str(object_1)是object_1的字符串表示形式。执行此转换的最简单和最具python风格的方法是什么 dict((k, str(v)) for k, v in d.iteritems()) 或者在Python2.7+中: {k: s
dict{
'key1': object_1
'key2': object_2
}
我想把它转换成:
dict{
'key1': str(object_1)
'key2': str(object_2)
}
其中str(object_1)是object_1的字符串表示形式。执行此转换的最简单和最具python风格的方法是什么
dict((k, str(v)) for k, v in d.iteritems())
或者在Python2.7+中:
{k: str(v) for k, v in d.items()}
对于更复杂的DICT(对象元组作为值):
使用字典理解:
{ k : str(v) for k, v in d.iteritems() }
上述内容将在Python2.7+中使用,它将使用生成器生成新词典。对于Python3,其工作原理类似:
{ k : str(v) for k, v in d.items() }
eurimo所说的,或者如果您不想复制:
for k in d:
d[k] = str(d[k])
下面的Python for循环应该可以解决您的问题
for item in d.keys():
d[item]=str(d[item])
您也可以使用此功能来实现它,而无需为字典使用任何内置方法:
x={z:str(x[z])表示x}我不得不做一些类似于你的问题的事情,但我认为我的解决方案有点长
new_dict=dict([(item[0],str(item[1])) for item in d.items()])
希望这有帮助好的,对于更多的嵌套计算是否也有类似的语法?例如,要将key1=>array(object,object)转换为key1=>array(string,string)?@Dejwi-是的,您可以根据需要转换各个值。Dejwi,如果您只有一个嵌套级别,只需在上面的代码中使用[str(o)For o in objects]。@eumiro我想您也可以在这里使用repr()。
iteritems
在3中不存在,但是,除非您使用项
(非惰性版本),否则同一代码不会同时在这两种情况下运行。
new_dict=dict([(item[0],str(item[1])) for item in d.items()])