if i == 0:
for ii in range(4):
print((lengths[ii]) * '-', end='+')
print(fmtstr.format(list_l[i][0].upper(), list_l[i][1].upper(), list_l[i][2].upper(), list_l[i][3].upper()))
打印输出:
-------------------+-------------+--------------------+----+| AAAAA | BBBBBB | CCCCC | DDDD |
我的两个问题是,使用end命令仅将'+'放在每组'length'的末尾,然后将其连接到下一个print命令。如何在上一次运行期间停止end命令,以免将其添加到要打印的下一组数据上?另外,如何使分隔符也位于数据的开头和结尾?
答案 0 :(得分:0)
由于您的问题不完整且不清楚,因此我不得不假设您的起始数据如下所示:
i = 0
lengths = [18,13,20,4]
list_l = [['aaaaa', 'bbbbbb', 'ccccc', 'dddd']]
fmtstr = "| {} | {} | {} | {} | "
if i == 0:
for ii in range(4):
print((lengths[ii]) * '-', end='+')
print(fmtstr.format(list_l[i][0].upper(), list_l[i][1].upper(), list_l[i][2].upper(), list_l[i][3].upper()))
根据我的收集,您希望最终结果看起来像这样:
+---------------------+---------------+----------------------+------+
| AAAAA | BBBBBB | CCCCC | DDDD |
+---------------------+---------------+----------------------+------+
您可以收集一个字符串,而不是尝试立即创建一个字符串,然后将其打印在数据的两侧:
s = "+"
if i == 0:
for ii in range(4):
s += (lengths[ii] * '-') + "+"
print(s)
print(fmtstr.format(list_l[i][0].upper(), list_l[i][1].upper(), list_l[i][2].upper(), list_l[i][3].upper()))
print(s)
哪个给:
+------------------+-------------+--------------------+----+
| AAAAA | BBBBBB | CCCCC | DDDD |
+------------------+-------------+--------------------+----+
很明显,这不是填充/居中。但是,如果我不知道您的原始数据或循环中的代码,该怎么办?