(Python)字符串统计排序

文章目录

【问题描述】

编写一个程序,接收用户输入的一个字符串(可以包含空格),统计其中所有出现过的所有字符,并按照频率高低的顺序排列输出。频率相同的字符按输入顺序输出。

【输入形式】

用户在第一行输入一个字符串,以回车结束输入。

【输出形式】

程序统计字符串中出现的所有字符,然后按照字符出现频率大小排序输出,频率相同时,按输入顺序输出。输出形式规定为每行输出4个字符数据,输出格式为:字符-出现次数。每个字符-出现次数输出中间用一个空格分隔,每行末尾没有空格。程序输出结尾有一个回车。

【样例输入】

The job requires an agile mind.

【样例输出】

#-5 e-4 i-3 r-2
a-2 n-2 T-1 h-1
j-1 o-1 b-1 q-1
u-1 s-1 g-1 l-1
m-1 d-1 .-1
#表示空格(在程序请输出空格,而不是字符’#’,这里只是表示而已。)

【样例说明】

用户首先输入字符串The job requires an agile mind. 程序统计完毕之后按照每行4个统计结果输出,字符串中有5个空格,所以输出为#-5,#表示空格。字符’b’和’T’出现次数同为1,因为输入时’b’先于’T’输入,所以输出时也先打印’b’的统计信息。

【题解】

str = input()
dic = {}
for i in str:
    dic[i] = str.count(i)
dic = dict(sorted(dic.items(), key=lambda x: x[1],reverse=True))
count = 0
for i in dic:
    print("%c-%d" % (i, dic[i]), end=" ")
    count += 1
    if count % 4 == 0:
        print()

上一篇:LeetCode实战--两数之和


下一篇:7、python_dict(字典)