2017-02-14 20 views
1

正確的表我使用Tabulate version 0.7.7爲Python 3.6Python的製表不會產生從字典

這是迄今爲止使用的字典一個簡單的測試我的代碼。

from tabulate import tabulate 

d = {"Dave":"13", "Bob":"15"} 

headers = ["Name", "Age"] 
print(tabulate(d, headers = headers)) 

我想要的結果是

Name Age 
------ ----- 
Dave 13 
Bob  15 

但是我所得到的是

Name Age 
------ ----- 
1  1 
3  5 

有人能幫助我嗎?

一個問題 - 我能解決這個使用製表或我應該使用不同的Python包?

回答

3

您可以訪問字典的items屬性。喜歡這個。它會給你你想要的結果。

>>> print(tabulate(d.items(), headers = headers)) 
Name  Age 
------ ----- 
Bob  15 
Dave  13 
+0

太棒了!非常感謝! –

1

您需要給出列表的元組列表。用字典來做到這一點的方法之一是使用解壓的項目,像這樣:

from tabulate import tabulate 

d = {"Dave":"13", "Bob":"15"} 

headers = ["Name", "Age"] 
print(tabulate(d.items(), headers = headers)) 

返回

Name  Age 
------ ----- 
Dave  13 
Bob  15 

或者,你可以使用不同的列表和壓縮在一起。製表正在尋找看起來像這樣輸入:

names = ['Dave','Bob'] 
ages = ['13','15'] 

d = zip(names,ages) 

print(d) 

返回:

[('Dave', '13'), ('Bob', '15')] 
+0

太棒了!非常感謝!我也會在我的開發中使用其他解決方案! –

+0

沒問題。第二種方法應該有助於獲得任意數量的列。快樂編程! – tmwilson26