如何解决如何在python中以良好的格式垂直对齐打印此信息?
我试图让这些信息垂直对齐而不是重叠。我只在每次迭代中使用 print("\t xyz \t")
并按它应该的方式并排打印,但有些字符串比其他字符串长。
电流输出:
Ticker : GME
Employees : 14000
Title : CEO & Director Exec. VP & CFO Exec. VP & Chief Merchandising Officer
Name : Mr. George E. Sherman Mr. James Anthony Bell Mr. Chris R. Homeister
Ages : 58 52 51
Pay : 1,900,374 USD 801,318 USD 766,266 USD
解决方法
通常这样做的方法是对每列的大小进行硬编码,或者遍历数据并找到用于每列的列宽。
如果您想遍历并调整列宽,代码非常简单:
rows = [
["Ticker :","GME"],["Employees :","14000"],["Title :","CEO & Director","Exec. VP & CFO","Exec. VP & Chief Merchandising Officer"],["Name :","Mr. George E. Sherman","Mr. James Anthony Bell","Mr. Chris R. Homeister"],["Ages :","58","52","51"],["Pay :","1,900,374 USD","801,318 USD","766,266 USD"],]
# Build up a max length of each column
lengths = {}
for row in rows:
for i in range(len(row)):
lengths[i] = max(lengths.get(i,0),len(row[i]))
for row in rows:
# For each cell,padd it by the max length
output = ""
for i in range(len(row)):
if len(output) > 0:
# Add a space between columns
output += " "
cell = row[i] + " " * lengths[i]
cell = cell[:lengths[i]]
output += cell
print(output)
这将输出:
Ticker : GME
Employees : 14000
Title : CEO & Director Exec. VP & CFO Exec. VP & Chief Merchandising Officer
Name : Mr. George E. Sherman Mr. James Anthony Bell Mr. Chris R. Homeister
Ages : 58 52 51
Pay : 1,374 USD 801,318 USD 766,266 USD
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。