2016-08-08 111 views
0
分隔的字典

比方說,我們有一個字典如何打印用逗號

dict = { 'Dollar': 12, 'Half-Coin': 4, 'Quarter': 3, 'Dime': 7 } 

我怎麼會去打印的代碼,以便它看起來像:

美元12,半投幣4 ,季3,迪梅7

+4

編寫代碼將是一個好的開始......你展示了你自己試圖做的這件事,我們會(可能)嘗試幫助解決它。其他任何事情都只是我們爲你做的工作。 –

+0

您可以使用列表理解來連接您的條目,然後使用str.join()函數將它們連接起來。查看它;) –

回答

-1
dict = { 'Dollar': 12, 'Half-Coin': 4, 'Quarter': 3, 'Dime': 7 } 

out="" 
for i in dict: 
    out += i+" "+str(dict[i])+", " 

print out[:-2] 

結果:

Half-Coin 4, Quarter 3, Dollar 12, Dime 7 
1

使用','.join(),傳遞一個字符串的生成器。

d = { 'Dollar': 12, 'Half-Coin': 4, 'Quarter': 3, 'Dime': 7 } 
print ', '.join('{} {}'.format(k,v) for k,v in d.items()) 

結果:

Half-Coin 4, Quarter 3, Dollar 12, Dime 7 

如果你想要的結果是可預知的順序,你需要對項目進行排序。

order=('Dollar', 'Half-Coin', 'Quarter', 'Dime') 
d = { 'Dollar': 12, 'Half-Coin': 4, 'Quarter': 3, 'Dime': 7 } 
print ', '.join('{} {}'.format(k,d[k]) for k in sorted(d, key=order.index)) 

結果:

Dollar 12, Half-Coin 4, Quarter 3, Dime 7 

詩篇。不要使用內置類型的名稱來命名變量。例如,你的名字黯然失色,所以後面的代碼將無法調用dict()

+0

謝謝,它的工作原理!但是,我不明白「對於d.items()中的k,v」是如何與其餘代碼一起工作的。什麼被分離出來? –

+0

'd.items()'返回一個兩元素元組的序列。每個元組的第一個元素是一個字典鍵。第二項是字典值。在d.items()中用於k,v的短語表示一個循環,它將字典中的每個項目連續地分配給「k」和賦值給「v」。 (我不知道你的意思是「分離出來」。) –

-1
", ".join([x +" "+str(dict[x]) for x in dict.keys()])