Практическая задача состоит в том, чтобы я упорядочил вложенные списки в табличных данных в правильные выравниваемые столбцы с одним вложенным списком в каждом. Я выяснил, как правильно выровнять каждое слово в каждом столбце до правильной длины самого столбца, но я не могу понять, как объединить столбцы в список вместо того, чтобы просто распечатать их как один столбец.
Я попытался объединить строки в цикле for
, выполнив итерацию заранее (print(list[i]+list[i+1]+list[i+2]...etc)
, но я продолжаю получать ошибки index out of range
, когда он повторяется снова и увеличивает i
.
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 на 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