如何对齐python输出[重复]

Posted

技术标签:

【中文标题】如何对齐python输出[重复]【英文标题】:How to align a python output [duplicate] 【发布时间】:2022-01-11 05:39:50 【问题描述】:

我有一些数据存储在 SQL 数据库表中。我需要从数据库中获取所有这些数据,并将其打印为 Python 输出,以人类可读的格式(如对齐表)。

您可以在下面看到我使用fetchall() 方法来获取这些数据并使用print 语句和2 个for 循环。

#executing all the records in the SQL query 
cursor.execute("SELECT * FROM game_log")

#Fetch results using fetchall() method
data=cursor.fetchall()

print("\n\nDate&Time\t\tName\tWord\tTurns Given\tTurns Used\tResults")

print("================================================================================")
for item in data:
    for value in item:
        print(value,end="\t")
    print()

您可以在下面看到其中一些显示为已对齐,但有些数据未显示为已对齐。

如何显示所有对齐的数据?

enter image description here

【问题讨论】:

【参考方案1】:

从您的数据中使用 Pandas 创建一个数据框,然后将其打印出来:

import pandas as pd

column_names = ["Date&Time", "Name", "Word", "Turns Given", "Turns Used", "Results"]
df = pd.DataFrame.from_records(data, columns = column_names)
print(df)

【讨论】:

非常感谢。我仍然在学习python作为初学者。你的答案很明确。再次感谢您的宝贵时间。 【参考方案2】:

使用具有如下格式的 python f 字符串:

>>> print(f'2.2:10.2f')
      2.20
>>> print(f'2.2:10.1f')
       2.2

查看此内容以供参考:https://docs.python.org/3/reference/lexical_analysis.html#f-strings

【讨论】:

感谢您帮助我,感谢您抽出宝贵时间。 【参考方案3】:

您可以计算每列的最大宽度(包括标题的宽度)并使用格式字符串来确保所有列打印相同的宽度:

data = [ ["05/12/2021_20:12","kamal","football",8,8,"Lost"],
         ["05/12/2021_20:14","amal","australia",9,2,"Lost"]]

headings = ["Date&Time","Name","Word","Turns Given","Turns Used","Results"]
widths   = [max(map(len,map(str,col))) for col in zip(headings,*data)]

print(*(f"c:<w" for c,w in zip(headings,widths)))
print("="*sum(widths,len(widths)-1))
for row in data:
    print(*(f"c:<w" for c,w in zip(row,widths)))

输出:

Date&Time        Name  Word      Turns Given Turns Used Results
===============================================================
05/12/2021_20:12 kamal football  8           8          Lost   
05/12/2021_20:14 amal  australia 9           2          Lost 

【讨论】:

非常感谢。作为初学者,我仍在学习 Python。你的回答也很清楚。感谢您抽出宝贵时间。

以上是关于如何对齐python输出[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Java中如何控制右对齐输出?

在python3中多次输出字符串,如何让上下字符串对齐。

python中如何统计字符串中各个字母的个数

python在 【按我这种样子】输出至文本的时候如何对齐(注意看内容,有两个问题)?

Java输出结果怎么对齐

Python初学者,为啥我爬取的网页数据输出列表没对齐