Как вывести 3 массива в 3 столбца в питоне

как вывести 3 подмассива в 3 столбца, как я понимаю, нужно задать ему координаты х и у

table[x][y]

что-то на подобе такого, но к сожелению, я никак не могу понять как в питоне их записать (а в гугле я смог найти функции np, но как сделать это без них). Нужно создать дополнительную функцию ?

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

def printTable(table):
    for i in table:
        for j in i:
            print(j.rjust(len(max(i)), '+'))

printTable(tableData)

благодарен заранее


Ответы (3 шт):

Автор решения: alex9127

Вам нужно использовать аргумент end в функции print(). По умолчанию этот аргумент равен \n (переносу строки). Вы можете изменить этот аргумент с помощью:

print(*что-то*, end = " ")

Таким образом в конце выведется не перенос строки, а то, чему равен аргумент end.

В конце вы просто вызываете пустой print чтобы начать с новой строки, когда вам нужно.

→ Ссылка
Автор решения: HelloWorld

Может тaк...

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


def printTable(table):
    for i in range(min([len(l) for l in table])):
        lst = [el[i] for el in table if len([el]) - 1 <= i]
        print(*lst)


printTable(tableData)
→ Ссылка
Автор решения: splash58

можно собрать сначала максимальные длины, а потом уже выводить

def printTable(table):
    mm = list(map(lambda x: len(max(x, key=lambda y: len(y))), table))
    for i in zip(*table):
        for j in range(len(i)):
            print(i[j].rjust(mm[j], ' '), end='  ')
        print()

выведет

cherries  Alice   dogs  
  banana  Carol   cats  
  apples    Bob  moose  
    bobs  David  goose
→ Ссылка