python编程快速上手习题求解 6.7实践项目 表格打印


tableData = [['apples','oranges','cherries','banana'],
             ['Alice','Bob','Carol','David'],
             ['dogs','cat','moose','goose']]

colWidth = [0] * len(tableData)#不设置这个列表,直接在下面导入len(tableData)可以吗?
#print(str(len(colWidth)))
for i in range(len(colWidth)):
    com = 0 
    for k in range(len(tableData[0])):
        if len(tableData[i][k]) > com:
            com = len(tableData[i][k])
    colWidth[i] = com

for i in range(len(tableData[0])):#这行和下面一行换下位置,为什么就不行了!
    for k in range(len(colWidth)):
        print(tableData[k][i].rjust(colWidth[k]),end=' ')
    print('')

1.不设置这个列表,那你的len往哪里导入呢
你当然也可以先设置一个空列表[],然后一个一个的append进去,那跟len就没有关系了,反正你循环次数是根据len来进行的
2.可以换位置,但是你的缩进也要调换,否则语法都错了


tableData = [['apples','oranges','cherries','banana'],
             ['Alice','Bob','Carol','David'],
             ['dogs','cat','moose','goose']]
 
#colWidth = [0] * len(tableData)#不设置这个列表,直接在下面导入len(tableData)可以吗?
colWidth = []
#print(str(len(colWidth)))
for i in range(len(tableData)):
    com = 0 
    for k in range(len(tableData[0])):
        if len(tableData[i][k]) > com:
            com = len(tableData[i][k])
    colWidth.append(com)

for k in range(len(colWidth)):
    for i in range(len(tableData[0])):#这行和下面一行换下位置,为什么就不行了!
        print(tableData[k][i].rjust(colWidth[k]),end=' ')
    print('')

是这个意思吗?