gpt4 book ai didi

python - 如何加入这些专栏? (自动化枯燥的东西第6章练习项目)

转载 作者:行者123 更新时间:2023-12-01 07:09:19 25 4
gpt4 key购买 nike

练习题要求我将表数据中的嵌套列表排列到右对齐的列中,每个列一个嵌套列表。我已经弄清楚如何将每列中的每个单词右对齐到列本身的正确长度,但我不知道如何将列加入到列表中,而不只是将它们作为一列打印出来。

我尝试通过提前迭代来连接 for 循环中的字符串 (print(list[i]+list[i+1]+list[i+ 2]...etc),但当它再次循环并递增 i 时,我不断收到 index out of range 错误。

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

def longlen(strings):
maximum = 0
for s in strings:
if len(s) > maximum:
maximum = len(s)
return(maximum)

def printTable(table):
column_width = [0] * len(table)
for i in range(len(table)):
column_width[i] =longlen(table[i])
for x in range(len(table[i])):
print(table[i][x].rjust(column_width[i]))

printTable(tableData)

现在我得到了每个单词的正确右对齐,但我不太清楚如何在 4 高 x 3 宽的右对齐表格中输出它。

现在看起来像这样:

  apples
oranges
cherries
banana
Alice
Bob
Carol
David
dogs
cats
moose
goose

我需要这个:

apples   Alice  dogs
oranges Bob cats
cherries Carol moose
banana David goose

最佳答案

您只需修改 printTable() 函数即可:

def printTable(table):
column_width = [0] * len(table)
for i in range(len(table)):
column_width[i] =longlen(table[i])
for x in range(len(table[0])):
for i in range(len(table)):
print(table[i][x].rjust(column_width[i]),end=' ')
print()

主要的变化是我适本地更改了您的 xi 位置,以便您打印列表的“转置”。

关于python - 如何加入这些专栏? (自动化枯燥的东西第6章练习项目),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58294986/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com