Python:在打印一些数据后将数据打印到新行

Python:在打印一些数据后将数据打印到新行,python,python-3.x,Python,Python 3.x,例如,如果我有一个数据 def printable(l): for i in range(len(l)): for j in range(len(l[i])): print(l[i][j]) print() tableData = [['apples', 'oranges', 'cherries', 'banana'], ['Alice', 'Bob', 'Carol', 'David'], ['dogs', 'cats', 'mo

例如,如果我有一个数据

def printable(l):
    for i in range(len(l)):
        for j in range(len(l[i])):
            print(l[i][j])
        print()
tableData = [['apples', 'oranges', 'cherries', 'banana'],
['Alice', 'Bob', 'Carol', 'David'],
['dogs', 'cats', 'moose', 'goose']]
printable(tableData)
如果我使用循环打印它,那么它将一个接一个地打印,我想要的是 打印完bob和sob后,我希望光标返回上方,然后打印cob dab

bob,sob,cob,dab 
如果在上述数据中删除dab,则输出应为
鲍勃·科布
抽泣
这在Python中可能吗? 有人能提供一个你能做的例子吗

first:print  
      bob  
      sob  
second:then cursor comes back up and print  
      cob  
      dab              
the output i wanted is  
bob cob  
sob dab  
输出

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

for row in zip(*data):
    print(' '.join(row))
from itertools import zip_longest
data = [['apples', 'oranges', 'cherries', 'banana'],
['Alice', 'Bob', 'Carol', 'David'],
['dogs', 'cats', 'moose']]

for row in zip_longest(*data, fillvalue=''):
    print(' '.join(row))
编辑-在长度不相等的情况下展开答案: 使用

输出

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

for row in zip(*data):
    print(' '.join(row))
from itertools import zip_longest
data = [['apples', 'oranges', 'cherries', 'banana'],
['Alice', 'Bob', 'Carol', 'David'],
['dogs', 'cats', 'moose']]

for row in zip_longest(*data, fillvalue=''):
    print(' '.join(row))

默认的填充值是
None
-如果您愿意,您可以保留它展开其中一个答案并使用简单列表(bob、sob、cob、dab),您可以根据索引在一维列表中的位置使用模,然后附加“\n”以创建具有适当间距的新行:

apples Alice dogs
oranges Bob cats
cherries Carol moose
banana David
输出:

data = ['bob','sob','cob','dab']
print(' '.join(['\n{}'.format(i) if data.index(i) % 2 == 0 else i for i in data]))

你能提供一些输入的预期输出吗?你的问题与你描述的不匹配,你的代码中有动物、名字和水果,而不是一些“dab-sob-cab”-这让人困惑,但一般来说,打印后你不能返回到一行-创建一个行列表,并在构建后打印。你使用的是什么操作系统?如果在Unix上,如果你真的想这样做,你可以使用它,但你可能只需要重新构造,以便在第一次打印时以正确的顺序打印东西,你可以按顺序在consort中迭代。@DerterDelnik“dab sab cab”是我使用的示例,如果我有a、b、c等输入,d当我们使用循环打印它时,它会一个接一个地打印我想要的是在打印a和b之后,c和d应该在新行中打印,如我在上面的输出中所示如果我删除了“goose”,那么最后一列没有打印即使我删除了列表中的一个或两个元素,我如何获得输出循环中不清楚的内容?只需检查(例如打印)您返回的邮政编码是多少。您能解释一下上面打印的内容吗statement@CvNikhil如果没有print语句,输出结果将包含“\n”(
”\nbob-sob\ncob-dab“
)。打印这些内容会将数据放在新行上,以便根据您的请求格式化输出。回答你问题的死亡或者你指的是别的什么?