python数组字典,如何对齐打印

img

如下数组列表,列表里面的字典的value数据来源于用户输入,数值的长度不同,用什么方法输出,可以对齐

list = [{"name":"小明",
                       "age":18,
                      "phone":12333444,
                      "qq":1122344,
                       "email":13333333},
        {"name": "小明小明小明小明小明",
         "age": 18181818,
         "phone": 123,
         "qq": 1.758888899999,
         "email": 75111111111}
        ]

数据量差异比较大, 可以考虑 用 PrettyTable

list = [{"name":"小明",
                       "age":18,
                      "phone":12333444,
                      "qq":1122344,
                       "email":13333333},
        {"name": "小明小明小明小明小明",
         "age": 18181818,
         "phone": 123,
         "qq": 1.758888899999,
         "email": 75111111111}
        ]
from prettytable import PrettyTable


x = PrettyTable(field_names=[k for k in list[0]])
x.padding_width = 1   # 填充宽度
for l in list:
    x.add_row([v for k,v in l.items()])
print(x)

img

第一种用格式符:

s1 = 'long.'
s2 = 'short.'
 
print ('%-20s%-10s' %(s1,s2))        #'%-20s' 含义是 左对齐,且占用20个字符位  如果是%20s就是右对齐
print ('%-20s%-10s' %(s2,s1))

第二种方式:
Python format 格式化函数

s1 = 'long.'
s2 = 'short.'
print ('{:>20}{:>10}' .format(s1,s2))   #{:20d}含义是 右对齐,且占用20个字符位 
print ('{:<20}{:<10}' .format(s1,s2))  #{:<20d}含义是 左对齐,且占用20个字符位 

希望对题主有所帮助,望采纳!

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632