有没有更好的方法来编写这段代码。虽然没有错误,但它似乎打印了我输入的所有字母,并将其分类到一个列表中。
我想打印一个字符串中的常见字母,即使不止一个也是如此。
这是我所拥有的
mystr = input("Enter a string:")
s = list(mystr)
letter_counter = {}
for word in mystr:
if word in letter_counter:
letter_counter[word] += 1
else:
letter_counter[word] = 1
user_letter = sorted(letter_counter, key = letter_counter.get, reverse = True)
number_1 = user_letter[:2]
print(number_1)
我可以打印正确字母的唯一方法是设置限制
number_1 = user_letter[:2]
例如,如果我输入以下内容:
mystr = input("Thomas Jones")
在代码中打印 输出将是
print(number_1)
[o], [s]
这是正确的,但如果限制设置为从 2 到 3
number_1 = user_letter[:3]
它将打印 [o] [s] [a] 只有一个 a 它不应该在那里。 我想要它,以便用户输入的任何数量的单词都会显示正确的重复字母没有限制器。
我很自由,我不知道如何纠正这个问题
请您参考如下方法:
from collections import Counter
[letter for letter,count in Counter("Thomas Jones").items() if count > 1]
