在字典中查找最常见的字符

时间:2019-04-17 18:03:06

标签: python

我有一个字符串,我已经从该字符串创建了一个字典,现在我需要根据该字典找到最常用的字母,并将该字母分配给变量best_char。也是最不常见的变量变量badst_char的字母。

sally = "sally sells sea shells by the sea shore"
characters = {}
for i in sally:
    characters[i]=characters.get(i,0)+1

1 个答案:

答案 0 :(得分:0)

在字典上做得好。

> characters
# {'s': 8, ' ': 7, 'l': 6, 'e': 6, 'a': 3, 'h': 3, 'y': 2, 'b': 1, 't': 1, 'o': 1, 'r': 1}

按值对那些字典键(元组)进行排序。

  • characters.items()是字典中的项,例如(键,值) 元组。

  • sorted(dictionary.items(), key=function)将对这些元组进行排序,但是我们需要一个key函数来告诉sorted 如何对其进行排序。

  • 我们定义了一个lambda函数,以item[1]进行排序。 lambda函数接受一个(键,值)元组并返回值(键,值)[1]。这样sorted()就会知道按元组中的第二个项目进行排序。

这是您排序的元组:

> sorted(characters.items(), key=lambda x: x[1])
# [('b', 1), ('t', 1), ('o', 1), ('r', 1), ('y', 2), ('a', 3), ('h', 3), ('l', 6), ('e', 6), (' ', 7), ('s', 8)]

选择最后一个元组[-1]。选择密钥。[0]

> best_char = sorted(characters.items(), key=lambda x: x[1])[-1][0]
# s
> worst_char = sorted(characters.items(), key=lambda x: x[1])[0][0]
# b or t or o or r. There are four characters that appear only once.