python 以没有模块的表格格式打印列表
python Printing a list in a tabular format without modules
我有一个名为 entryList
的列表,它开始是空的,但是当提示用户输入时,这个输入被添加到列表中。运行 2 次后,列表将如下所示:
[2, 1234, 'E', 2.0, 2.71, 6, 0800, 'U', 2.34, 20.89]
每次要求输入的迭代都会向列表中添加 5 个值。打印此列表时,我需要它看起来像这样:
EntryNo PumpNo Time FType LPrice FAmount
---------------------------------------------
1 2 1234 E 2.00 2.71
2 6 0800 U 2.34 20.89
如何在不导入任何模块的情况下让列表打印成这样,每添加一个新行,EntryNo 列就会增加 1?
有一些打印和一些格式
values = [2, '1234', 'E', 2.0, 2.71,
6, '0800', 'U', 2.34, 20.89]
cols = ["EntryNo", "PumpNo", "Time", "FType", "LPrice", "FAmount"]
print(*cols)
print("-" * len(" ".join(cols))) # optional
for idx, i in enumerate(range(0, len(values), 5), start=1):
print("{:<7d} {:<6d} {:<4s} {:<5s} {:<6.2f} {} ".format(idx, *values[i:i + 5]))
EntryNo PumpNo Time FType LPrice FAmount
----------------------------------------
1 2 1234 E 2.00 2.71
2 6 0800 U 2.34 20.89
有模块pandas
你可以使用pandas,你会很容易得到一个不错的输出,例如to_markdown
import pandas as pd
values = [2, '1234', 'E', 2.0, 2.71,
6, '0800', 'U', 2.34, 20.89]
df = pd.DataFrame([[idx, *values[i:i + 5]] for idx, i in enumerate(range(0, len(values), 5), start=1)],
columns=["EntryNo", "PumpNo", "Time", "FType", "LPrice", "FAmount"])
print(df.to_markdown(index=False))
| EntryNo | PumpNo | Time | FType | LPrice | FAmount |
|----------:|---------:|-------:|:--------|---------:|----------:|
| 1 | 2 | 1234 | E | 2 | 2.71 |
| 2 | 6 | 0800 | U | 2.34 | 20.89 |
我有一个名为 entryList
的列表,它开始是空的,但是当提示用户输入时,这个输入被添加到列表中。运行 2 次后,列表将如下所示:
[2, 1234, 'E', 2.0, 2.71, 6, 0800, 'U', 2.34, 20.89]
每次要求输入的迭代都会向列表中添加 5 个值。打印此列表时,我需要它看起来像这样:
EntryNo PumpNo Time FType LPrice FAmount
---------------------------------------------
1 2 1234 E 2.00 2.71
2 6 0800 U 2.34 20.89
如何在不导入任何模块的情况下让列表打印成这样,每添加一个新行,EntryNo 列就会增加 1?
有一些打印和一些格式
values = [2, '1234', 'E', 2.0, 2.71,
6, '0800', 'U', 2.34, 20.89]
cols = ["EntryNo", "PumpNo", "Time", "FType", "LPrice", "FAmount"]
print(*cols)
print("-" * len(" ".join(cols))) # optional
for idx, i in enumerate(range(0, len(values), 5), start=1):
print("{:<7d} {:<6d} {:<4s} {:<5s} {:<6.2f} {} ".format(idx, *values[i:i + 5]))
EntryNo PumpNo Time FType LPrice FAmount
----------------------------------------
1 2 1234 E 2.00 2.71
2 6 0800 U 2.34 20.89
有模块pandas
你可以使用pandas,你会很容易得到一个不错的输出,例如to_markdown
import pandas as pd
values = [2, '1234', 'E', 2.0, 2.71,
6, '0800', 'U', 2.34, 20.89]
df = pd.DataFrame([[idx, *values[i:i + 5]] for idx, i in enumerate(range(0, len(values), 5), start=1)],
columns=["EntryNo", "PumpNo", "Time", "FType", "LPrice", "FAmount"])
print(df.to_markdown(index=False))
| EntryNo | PumpNo | Time | FType | LPrice | FAmount |
|----------:|---------:|-------:|:--------|---------:|----------:|
| 1 | 2 | 1234 | E | 2 | 2.71 |
| 2 | 6 | 0800 | U | 2.34 | 20.89 |