在本节中,他们希望我们创建此表:
apples Alice dogs
oranges Bob cats
cherries Carol moose
banana David goose
它必须向右对齐,输入是tableData。这是我的代码:
tableData=[['apples', 'oranges', 'cherries', 'banana'],
['Alice', 'Bob', 'Carol', 'David'],
['dogs', 'cats', 'moose', 'goose']]
listlens=[]
tour=0
lists={}
for m in tableData:
total=0
tour+=1
for n in m:
total+=len(n)
lists["list:",tour]=total
print("list",tour,total)
itemcount=list(lists.values())
sortedlen=(sorted(itemcount,reverse=True))
longest=sortedlen[0]
#print (lists['list:', 1])
#print (longest)
for m in range(len(tableData[0])):
for n in range(len(tableData)):
print (tableData[n][m],end=" ")
n+=1
print ("".rjust(lists['list:', 1],"-"))
m+=1
我差不多做完了,除了一件事,我不能证明这是正确的。这个输出是我迄今为止最接近的。
apples Alice dogs ---------------------------
oranges Bob cats ---------------------------
cherries Carol moose ---------------------------
banana David goose ---------------------------
如果我把rjust放在内部for循环中,输出会大不相同:
apples-------------------------- Alice-------------------------- dogs--------------------------
oranges-------------------------- Bob-------------------------- cats--------------------------
cherries-------------------------- Carol-------------------------- moose--------------------------
banana-------------------------- David-------------------------- goose--------------------------
这里有一个替代方法,也许你可以应用到你自己的代码中。我先把
tableData
整理成字典,这样就更容易使用了。在那之后,我找到了最长的字符列表。这让我们知道短名单应该走多远。最后,我打印出每个列表,根据与最长列表的差异在较短列表前面添加空格。我就是这样做的。
在代码的第一部分,我只是使用了他们给我们的提示。
在第4章/练习项目/字符图片网格中,我们学习了如何“旋转”,然后打印列表列表。这对我的代码的第二部分很有用。
年轻的学徒来了:
循环确定maxlen可能不是最优的,复制粘贴只是我脑海中最快出现的事情。
相关问题 更多 >
编程相关推荐