Python имеет встроенный метод zip, который позволяет объединять итерируемые элементы в одну переменную. Если вы объедините это со способностью питонов unpacking
, код станет довольно сжатым.
tableData = [['apples','oranges','cherries','banana'],
['Alice','Bob','Carol', 'David'],
['dogs', 'cats','moose','goose']]
things = list(zip(*tableData))
for tuple in things:
print('{} {} {}'.format(*tuple).rjust(20))
Мы взяли tabledata
и разбили его, используя распаковщик *
, затем сжали, чтобы получить кортеж, содержащий по одному из каждого значения из разделенных списков.
Затем мы перебираем things
и разделяем каждый кортеж, снова используя распаковку. Наконец, мы можем использовать rjust()
, чтобы оправдать это право