我有字典对象值和字符串键:
dict{
'key1': object_1
'key2': object_2
}
我想将其转换为:
dict{
'key1': str(object_1)
'key2': str(object_2)
}
其中str(object_1)是object_1的字符串表示形式。执行此转换的最简单,最pythonic的方法是什么?
答案 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()])
希望这会有所帮助