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“
)。打印这些内容会将数据放在新行上,以便根据您的请求格式化输出。回答你问题的死亡或者你指的是别的什么?