我有一个字符串,我已经从该字符串创建了一个字典,现在我需要根据该字典找到最常用的字母,并将该字母分配给变量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
答案 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.