2017-02-14 77 views
0

我使用Tabulate 0.7.7包爲每個鍵有兩個值的字典制表。每個鍵包含兩個值的Python製表詞典

我有這段代碼。

from tabulate import tabulate 

d = {"Dave":("13", "Male") , "Sarah":("16", "Female")} 

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

我想製作下表 -

Name Age Gender 
------ ----- --------- 
Dave 13  Male 
Sarah 16  Female 

但是,代碼如下表 -

Name Age 
------ ---------------- 
Dave ('13', 'Male') 
Sarah ('16', 'Female') 

我怎樣才能解決這個問題?

+0

你讀過[的文檔(https://bitbucket.org/astanin/python-tabulate)?他們列出了所需的格式,您需要將當前的數據結構轉換爲其中的一種。 – jonrsharpe

回答

2

如果拼合字典項目,從(K,(V1,V2))(K,V1,V2),就可以得到正確的格式:

from tabulate import tabulate ​ 
d = {"Dave":("13", "Male") , "Sarah":("16", "Female")} 
​ 
headers = ["Name", "Age", "Gender"] 
print(tabulate([(k,) + v for k,v in d.items()], headers = headers)) 

Name  Age Gender 
------ ----- -------- 
Sarah  16 Female 
Dave  13 Male 
+0

我似乎沒有想到!早些時候,我設法得到了儘可能多的print(tabulate([(k)+ v for k,v in d.items()],headers = headers))'但這不起作用。哇! (k,)中的逗號是做什麼的? –

+0

在Python中,逗號會生成元組,因此'(k,)'可以創建一個長度爲1的元組,您可以將其添加到另一個元組中,在您的情況下可以添加到v。 '(k)'與'k'相同,這不是你想要的。 – Psidom

1

我m不確定是否有可能鑑於輸入數據的結構d

重新格式化您的數據(如下所示)將提供所需的結果。

d = {'Name': ['Dave', 'Sarah'], 'Age': [13, 16], 'Gender': ['Male', 'Female']

相關問題