python-3.x 字典只读取第一个字符串

tvz2xvvm  于 2022-12-01  发布在  Python
关注(0)|答案(1)|浏览(123)

我想在一个字典中输入所有小写字母并计算它们的个数。我的输入应该是这样的:

John Steinbeck:
     *****The Grapes of Wrath*****
     *****East of Eden*****

输出应为:

e 5

我现在的代码是:

from easyinput import read
n = read(str)
letters = {}

for i in n:
    if i.isspace():
        n = read(str)
    elif i.islower():
        if i not in letters:
            letters[i] = 1
        else:
            letters[i] += 1
    n = read(str)
print(letters)

我也试过当i ==“”,但它不起作用。我不明白为什么字母不存储在dict中,只存储每行的第一个单词。
只取第一个“判决”(约翰·斯坦贝克:)敕令应归

{'o': 1, 'h': 1, 'n': 2, 't': 1, 'e': 2, 'i': 1, 'b': 1, 'c': 1, 'k': 1}

但它只返回

{'o': 1, 'h': 1, 'n': 1}

谢谢你的建议。

64jmpszr

64jmpszr1#

您可以像这样使用collections.Counter()

from collections import Counter

s = '''John Steinbeck:
     *****The Grapes of Wrath*****
     *****East of Eden*****'''

counter = Counter(c for c in s if c.islower())

print(counter)

结果是:

Counter({'e': 5, 'o': 3, 'h': 3, 'n': 3, 't': 3, 'a': 3, 'r': 2, 's': 2, 'f': 2, 'i': 1, 'b': 1, 'c': 1, 'k': 1, 'p': 1, 'd': 1})

如果你想知道哪个字符是最常用的,你可以使用这个:

counter.most_common(1)

结果是:

[('e', 5)]

相关问题