从右到左格式化输出

问题描述 投票:0回答:1

我正在尝试学习如何格式化打印,使其看起来整洁。我的程序将计算一段文本中有多少个元音。但不要打印我想要的从右到左的方式

例如 - 我希望它打印为:

a : 100
e :  50
i :  31
o :  10
u :   1

目前我打印如下:

a : 100
e : 50
i : 31
o : 10
u : 1

这是我的代码和打印选项到目前为止....

import sys


vowels = {i:0 for i in 'aeiou'}

def check(string):
    for char in string:
        if char in vowels:
           vowels[char] +=1
    return vowels

def main():
    for line in sys.stdin:
        lines = line.lower().strip()

        check(lines)

    sortvowels = sorted(vowels, key=vowels.get, reverse=True)
    for r in sortvowels:
        print(' {:} {} {:>d}'.format(r,":",vowels[r]))

    #for keys, values in sorted(vowels.items(),reverse=False):
    #   print('{} : {:d}'.format(keys, vowels[maximum]))

if __name__ == '__main__':
    main()
python-3.x
1个回答
0
投票

我通过从字典中获取最大值来解决这个问题,

我不得不添加额外的代码,

formt = max(vowels.values())
finalformat = len(str(formt))

我是通过formt = max(vowels.values())做到的

为了实际使用它,我不得不将其转换为字符串。

我是通过finalformat = len(str(formt))做到的

为了最终能够打印,我做了以下事情:

sortvowels = sorted(vowels, key=vowels.get, reverse=True)
for r in sortvowels:
    print('{} {} {:>{}}'.format(r,":",vowels[r],finalformat))
© www.soinside.com 2019 - 2024. All rights reserved.