使用我的代码,我遇到了间距问题,并且找到了一种方法来确定每列的长度,这种方式我知道何时有换行符。 列用一个垂直条“|”分隔;并且必须有一个空格 垂直杆前后; o每行以竖条开始和结束;之后必须有一个空格 前导栏和结束栏之前 这是我到目前为止的代码:
def show_table(table):
string = ''
for i in table:
for j in range(len(i)):
line = i[j]
string += "{}".format(line) + "|"
return "|" + string +"\n"
有一个限制:您必须使用字符串格式,%或.format()。 以下是列表列表的示例 这是一个例子:
>>> show_table([['A','BB'],['C','DD']])
'| A | BB |\n| C | DD |\n'
>>> print(show_table([['A','BB'],['C','DD']]))
| A | BB |
| C | DD |
答案 0 :(得分:2)
你的代码非常接近,但你没有在竖条周围找到合适的空格,而且你也没有处理表格中每一行的结尾。
您不必担心列的宽度,因为您的分配说明只是在列表项和竖线之间放置一个空格。
这是修改后的代码版本,只需稍加修改。
def show_table(table):
string = ''
for i in table:
for j in range(len(i)):
line = i[j]
string += '| {} '.format(i[j])
string += '|\n'
return string
print(show_table([['A','BB'],['C','DD']]))
<强>输出强>
| A | BB |
| C | DD |
更直接在列表上迭代Pythonic,而不是使用列表索引间接迭代。
def show_table(table):
string = ''
for line in table:
for item in line:
string += '| {} '.format(item)
string += '|\n'
return string
更紧凑的方法是使用列表理解:
def show_table(table):
return ''.join(['| {} |\n'.format(' | '.join(row)) for row in table])