我有带有对象值和字符串键的字典:
dict{
'key1': object_1
'key2': object_2
}
我想把它转换成:
dict{
'key1': str(object_1)
'key2': str(object_2)
}
其中 str(object_1) 是 object_1 的字符串表示形式。执行此转换的最简单和最 Pythonic 的方式是什么?
我有带有对象值和字符串键的字典:
dict{
'key1': object_1
'key2': object_2
}
我想把它转换成:
dict{
'key1': str(object_1)
'key2': str(object_2)
}
其中 str(object_1) 是 object_1 的字符串表示形式。执行此转换的最简单和最 Pythonic 的方式是什么?
dict((k, str(v)) for k, v in d.iteritems())
或在 Python2.7+ 中:
{k: str(v) for k, v in d.items()}
对于更复杂的字典(以对象元组作为值):
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()}
eurimo 说了什么,或者如果您不想复制:
for k in d:
d[k] = str(d[k])
使用字典推导:
{ k : str(v) for k, v in d.iteritems() }
以上将在 Python 2.7+ 中工作,它将使用生成器生成新字典。对于 Python 3,这将类似地工作:
{ k : str(v) for k, v in d.items() }
以下 Python for 循环应该可以解决您的问题。
for item in d.keys():
d[item]=str(d[item])
您也可以使用它来实现它,而无需使用任何内置的字典方法:
x={ z : str(x[z]) for z in x }
我不得不做与你的问题类似的事情,但我认为我的解决方案有点长。
new_dict=dict([(item[0],str(item[1])) for item in d.items()])
希望这可以帮助