我想漂亮地列印字典的鍵值對。我有以下代碼:
dict = {'AAAAA': 2, 'BB': 1, 'CCCCCCCCC': 85}
for k, v in dict.items():
print('{}........{}'.format(k, v))
這是我的代碼目前產生的:
AAAAA........2
BB........1
CCCCCCCCC........85
但我想要:
AAAAA............2
BB...............1
CCCCCCCCC........85
我該如何做到這一點?
uj5u.com熱心網友回復:
使用f-string您可以設定每個欄位的寬度并使用.
#! /usr/bin/env python3
dict = {'AAAAA': 2, 'BB': 1, 'CCCCCCCCC': 85}
for k, v in dict.items():
print(f'{k:.<10}{v:.>10}')
給予
AAAAA..............2
BB.................1
CCCCCCCCC.........85
或者
print(f'{k:.<20}{v}')
如果你真的想要
AAAAA...............2
BB..................1
CCCCCCCCC...........85
uj5u.com熱心網友回復:
您可以使用str.ljust():
dictionary = {'AAAAA': 2, 'BB': 1, 'CCCCCCCCC': 85}
n = 17
for key, value in dictionary.items():
justified_key = key.ljust(n, ".")
print(f"{justified_key}{value}")
這輸出:
AAAAA............2
BB...............1
CCCCCCCCC........85
uj5u.com熱心網友回復:
考慮使用len()來平衡點數
dict = {'AAAAA': 2, 'BB': 1, 'CCCCCCCCC': 85}
total = 15
for k, v in dict.items():
print(k, "." * (total - len(k)), v, sep="")
uj5u.com熱心網友回復:
它適應您的 k,v 的長度:
dict = {'AAAAA': 2, 'BB': 1, 'CCCCCCCCC': 85}
for k, v in dict.items():
print(f'{k}{(20-(len(k) len(str(v))))*"."}{v}')
AAAAA..............2
BB.................1
CCCCCCCCC.........85
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/488127.html
