如下数组列表,列表里面的字典的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)
第一种用格式符:
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个字符位
希望对题主有所帮助,望采纳!
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!