2017-10-20 91 views
-1

我有一个字典是不是最终的输出:解压字典格式化

mydict = {'yesterday':'2017-10-19','today':'2017-10-20','tomorrow':'2017-10-21'} 

我希望它内__str__像返回的提示:

def __str__(self): 
     return "{}:{}, {}:{}, {}:{}".format(**mydict) 
    #just for explaining 

如何使它工作?

+0

你看过'str.format'方法的文档吗? –

+0

您的预期输出与仅使用打印有什么区别? –

+0

示例:“{}为{},{}为{},{}为{}”。格式(** mydict)@TanWeiLian –

回答

1

解压缩字典到format会给出命名参数,所以您需要命名占位符;您可能需要:

mydict = {'yesterday':'2017-10-19','today':'2017-10-20','tomorrow':'2017-10-21'} 
​ 
"yesterday:{yesterday}, today:{today}, tomorrow:{tomorrow}".format(**mydict) 
# 'yesterday:2017-10-19, today:2017-10-20, tomorrow:2017-10-21' 

如果您需要格式化键,从字典拼合键值对(这并不保证顺序,除非你有一个有序字典开始),然后解压:

"{}:{}, {}:{}, {}:{}".format(*(x for kv in mydict.items() for x in kv)) 
# 'today:2017-10-20, tomorrow:2017-10-21, yesterday:2017-10-19'