二维列表输出格式设置 [英] 2D list output formatting

查看:36
本文介绍了二维列表输出格式设置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以,如前所述,这是一个2D列表。7行内6列(6个随机数)。输出的格式应如下所示: http://i.stack.imgur.com/hwnHi.png

我的代码是这样的:

    print ("     ", 1 , "   ", 2, "   ",3, "   ",4, "   ",5, "   ",6)
print ()
for i in range(7):
    print (i+1, *Pizza[i], sep="     ")

print ("To", *sales_of_hours, sep="    ")

Pizza是我的2D列表,Sales_of_Hours是每列的合计列表,我有另一个名为Sales_of_day的列表来表示每行的合计,但是当我尝试将其添加到循环中时,如下所示:

    for i in range(7):
    print (i+1, *Pizza[i], sep="     ", *sales_of_day[i])

我收到一个语法错误。 我做错了什么?

推荐答案

最有可能的是,sales_of_day是一维列表,如果是这样,您将无法解包sales_of_day[i],因为它很可能是一个数字。

也不需要手动给空格和全部,可以使用str.format()的右连线,达到类似的效果,代码为-

print(' '*6,end='')
for i in range(6):
    print('{:>6}'.format(i+1),end="")
print('{:>6}'.format('Total'))

for i in range(7):
    print('{:>6}'.format(i+1),end='')
    for j in range(6):
        print('{:>6}'.format(pizza[i][j]),end="")
    print('{:>6}'.format(sales_of_day[i]))

print('{:>6}'.format('To'),end='')
for i in range(6):
    print('{:>6}'.format(sales_of_hours[i]),end='')
print()

格式{:>6}强制字符串在可用空间内右对齐(这是数字的默认值)。


演示-

import random

pizza = [[random.randint(1,9) for j in range(6)] for i in range(7)]

print(' '*5,end='')
for i in range(6):
    print('{:>5}'.format(i+1),end="")
print('{:>5}'.format('Total'))

for i in range(7):
    print('{:>5}'.format(i+1),end='')
    for j in range(6):
        print('{:>5}'.format(pizza[i][j]),end="")
    print('{:>5}'.format(sum(pizza[i])))

print('{:>5}'.format('To'),end='')
for i in range(6):
    print('{:>5}'.format(random.randint(10,50)),end='')
print()

输出-

> python a.py

         1    2    3    4    5    6Total
    1    4    6    6    2    6    9   33
    2    2    4    6    1    3    7   23
    3    1    4    3    5    7    1   21
    4    5    5    2    7    2    2   23
    5    3    1    6    8    1    7   26
    6    6    2    3    3    6    8   28
    7    3    9    6    6    4    4   32
   To   45   45   25   40   30   34

这篇关于二维列表输出格式设置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆