的问题是count_letters是一个字典,其中的键是字母,值是具有该字母计数的字典,在练习中要求您计算values consisting of the number of times each letter is used in this
sentence.
您的代码:sentence = 'Jim quickly realized that the beautiful gowns are expensive'
count_letters = {}
cnt_lowercase = 0
cnt_uppercase = 0
for c in sentence:
if c.islower():
if (c in count_letters) == False:
count_letters[c]={c:sentence.count(c)}
cnt_lowercase += 1
if c.isupper():
if (c in count_letters) == False:
count_letters[c]={c:sentence.count(c)}
cnt_uppercase += 1
print(count_letters)
输出
^{pr2}$
例如,'u'的值是{'u': 3}。您可以通过添加以下行来修复它:count_letters = { k : v[k] for k, v in count_letters.items()}
print(count_letters)
输出(使用新行){'m': 1, 'c': 1, 'f': 1, 'b': 1, 'q': 1, 'd': 1, 'o': 1, 'g': 1, 'k': 1, 'r': 2, 'z': 1, 'v': 1, 'u': 3, 'l': 3, 'y': 1, 'p': 1, 's': 2, 'e': 8, 'x': 1, 'i': 5, 'w': 1, 'h': 2, 'n': 2, 'J': 1, 'a': 4, 't': 4}
说明
添加的行被称为字典理解。相当于:d = {}
for k, v in count_letters.items():
d[k] = v[k]
count_letters = d