Проблема из главы 6 ATBS.Это создание функции, которой передается список списков, а затем распечатывается каждый список, но выровненный таким образом, чтобы каждый столбец был аккуратным и пустым независимо от длины строк в списке.
Я создал пустой списокс тем же количеством элементов, что и у каждого встроенного списка (при условии, что они имеют одинаковую длину), и обнаружил максимальную длину строки в каждом списке и это число в пустом списке.Затем вызывается для печати каждого списка, выровненного по максимальной длине строки.
table = [['Tom','Dick','Harry','John'],
['Apples','Oranges','Strawberries','Grapes'],
['Brocolli', 'Asparagus', 'Carrots', 'Potatoes']]
def printTable(tableData):
colWidths = [0] * len(tableData)
for i in range(len(tableData)):
colWidths[i] = max(len(j) for j in tableData[i])
for i in range(len(tableData)):
for j in tableData[i]:
print(j.rjust(colWidths[i]))
printTable(table)
Это печатает следующее
Tom
Dick
Harry
John
Apples
Oranges
Strawberries
Grapes
Brocolli
Asparagus
Carrots
Potatoes
, но я хочу его в трех отдельных столбцах, а не в одном.Я знаю, что это можно сделать с помощью zip, но я еще не рассмотрел это.Я хочу понять, как это сделать, используя циклы for, прежде чем охватывать новый контент, просто чтобы выполнить свою работу, поскольку я не думаю, что это поможет мне правильно изучить основы.