我有一個字典串列,例如:
[ {'Type':'水','Level':'8'},{'Type':'Fire','Level':'2'},{'Type':'Fire','Level': '8'}, ... ]
我有這段代碼,基本上將其列印為表格:
my_list_of_dics = [ {'Type': 'Water', 'Level': '8'}, {'Type': 'Fire', 'Level': '2'}, {'Type': 'Fire', 'Level': '8'}]
#Initialize string
string_table = ""
#Print headers
for key in my_list_of_dics[0]:
string_table = key "\t"
#Jump line
string_table = "\n"
#Print values (rows), matching the header order and tabulations between each value and jump a line after each row
for row in my_list_of_dics:
string_table = row['Type'] "\t" row['Level'] "\n"
print(string_table)
列印這個:
Type Level Water 8 Fire 2 Fire 8
它可以按我的意愿作業,但是在列印出來時,我必須硬編碼鍵的名稱和每個之間的制表數( “\ t”)。
幸運的是,生成表格的標題是通用的,但是我無法概括列印鍵的值和串列的數量(如我的第二個回圈中所示)。
uj5u.com熱心網友回復:
如果所有字典都具有相同的鍵,則可以將for回圈中的代碼行替換為:
string_table = '\t'.join(row[key] for key in my_list_of_dics[0]) '\n'
請注意,您可以通過定義來優化它
keys = list(my_list_of_dics[0].keys())
那么你可以使用
string_table = '\t'.join(row[key] for key in keys) '\n'
你可以用
string_table = '\t'.join(keys) '\n'
uj5u.com熱心網友回復:
您可以使用 pythonformat創建表。
my_list_of_dics = [
{"Type": "Water", "Level": "8"},
{"Type": "Fire", "Level": "2"},
{"Type": "Fire", "Level": "8"},
]
print("{:<10} {:<10}".format("Type", "Level"))
for val in my_list_of_dics:
print("{:<10} {:<10}".format(val["Type"], val["Level"]))
會給我們
Type Level
Water 8
Fire 2
Fire 8
更廣義的形式
my_list_of_dics = [
{"Type": "Water", "Level": "8"},
{"Type": "Fire", "Level": "2"},
{"Type": "Fire", "Level": "8"},
]
get_keys = list(my_list_of_dics[0].keys())
fmt = "{:<10}" * len(get_keys)
print(fmt.format(*get_keys))
for val in my_list_of_dics:
print(fmt.format(*val.values()))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/465147.html
下一篇:如何更新Python字典中的值?
