首页 > 解决方案 > 如何在右对齐的情况下每行仅打印 3 个值?

问题描述

以下是我当前的代码。但是,我只想打印每行 3 个值,列之间有 5 个空格,右对齐。我试图让我的代码与下图相匹配。

定义格式():

import random
lst = [] 
for i in range(100):
    lst.append(random.uniform(0, 1000)) #Get a random number btw 0 and 1000

num = eval(input('Enter number of values to retrieve: '))
for x in range(num+1):
    print('${:>5,.2f}'.format(lst[x]), end='     ')

在此处输入图像描述

标签: pythonformat

解决方案


不是最优雅的解决方案,但工作正常。包括正当理由。

import random
lst = [] 
for i in range(100):
    lst.append(random.uniform(0, 1000)) #Get a random number btw 0 and 1000

num = eval(input('Enter number of values to retrieve: '))

groups_of_3 = [lst[0:num][i:i+3] for i in range(0, num, 3)]

for group in groups_of_3:
    for value in group:
        justfied_num = (str(value).split(".")[0] + "." + str(value).split(".")[1][0:2]).rjust(6)
        print(f'${justfied_num}', end='     ')
    print()

推荐阅读