2017-10-20 59 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'