首页 > 解决方案 > 如何垂直打印数字列表?

问题描述

我正在尝试解决一个练习。我应该编写一个接受整数列表的函数,将其转换为垂直显示的数字字符串。

mylist = [5,69,2090]

该函数应返回/打印以下字符串:

    2
    0
  6 9
5 9 0

我试图用下面的代码解决它,但它对我没有帮助

def printstring(mylist):
    h = len(mylist)//3
    for i in range(h):
        print(mylist[i],mylist[h+i],l[h+i+1])

标签: python

解决方案


lst = [5,69,2090]

n = max(len(str(i)) for i in lst)
for i in zip(*['{:>{n}}'.format(i, n=n) for i in lst]):
    print(' '.join(i))

印刷:

    2
    0
  6 9
5 9 0

对于lst = [1,123,12,12345,1234]

      1  
      2 1
  1   3 2
  2 1 4 3
1 3 2 5 4

推荐阅读