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
first:print
bob
sob
second:then cursor comes back up and print
cob
dab
the output i wanted is
bob cob
sob dab
如果我在上述数据中删除了DAB,则输出应为
鲍勃·科布
哭泣
这在Python中可行吗?
谁能提供一个例子
答案 0 :(得分:1)
你可以
data = [['apples', 'oranges', 'cherries', 'banana'],
['Alice', 'Bob', 'Carol', 'David'],
['dogs', 'cats', 'moose', 'goose']]
for row in zip(*data):
print(' '.join(row))
输出
apples Alice dogs
oranges Bob cats
cherries Carol moose
banana David goose
编辑-在长度不相等的情况下扩展答案:
使用itertools.zip_longest()
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))
输出
apples Alice dogs
oranges Bob cats
cherries Carol moose
banana David
默认填充值为None
-如果愿意,可以保留它
答案 1 :(得分:0)
扩展其中一个答案并使用简单列表(bob,sob,cob,dab),您可以根据一维列表中的索引位置使用模,然后附加“ \ n”以创建一个新的适当间距的行:
data = ['bob','sob','cob','dab']
print(' '.join(['\n{}'.format(i) if data.index(i) % 2 == 0 else i for i in data]))
输出:
bob sob
cob dab
答案 2 :(得分:-1)
https://docs.python.org/3/library/functions.html#print
data = ["Mom", "Dad", "Son", "Daughter"]
for person in data:
print(person, end='\n')
如果我认为您要尝试做的只是获得一条要在新行上打印的语句,则必须将end=
参数添加到print语句中。它不是必需的,但很有用。
如果要在同一行上打印多个名称,则可以使用分隔符参数sep=","
在每个名称后添加逗号。 end
参数紧随其后,以确保跳至下一行。