问题就是图片所示,我已经敲出了这个代码,但是仅限于这个给定的题目:即tabledata必须是只含有3个子列表的列表,总之就是很多限制不能达到,传入任意数据都能处理,我也尝试过,但越尝试问题越多,所以特地来请教个位c友
下面是我敲的代码:
table_data = [['apples', 'oranges', 'cherries', 'banana'],
['Alice', 'Bob', 'Carol', 'David'],
['dogs', 'cats', 'moose', 'goose']]
def print_table(data):
col_widths = [0] * len(table_data)
num_width = []
for i in range(len(col_widths)): # 判断给定列表中哪个元素最长,并拿出来
col_widths[i] = ' ' # 给他一个空字符串否则无法使用len()函数
for u in range(len(table_data[0])):
if len(col_widths[i]) < len(table_data[i][u]):
col_widths[i] = table_data[i][u]
for i in range(len(col_widths)):
num_width.append(len(col_widths[i]))
for u in range(len(table_data[0])):
print(table_data[0][u].rjust(num_width[0]) + ' ' + table_data[1][u].ljust(num_width[1]) + ' ' + table_data[2][u].ljust(num_width[2]))
print_table(table_data)