我正在尝试学习如何格式化打印,使其看起来整洁。我的程序将计算一段文本中有多少个元音。但不要打印我想要的从右到左的方式
例如 - 我希望它打印为:
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()
我通过从字典中获取最大值来解决这个问题,
我不得不添加额外的代码,
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))