原始程序如下
message='It was a bright cold day in April,and the clocks were striking thirteen.'
count={}
for character in message:
count.setdefault(character,1)#注意这里的1是我刻意改变的,正常应该为0,嗯。。。0好一些
count[character]=count[character]+1
print(count)
输出messgae里每一个字符出现次数:
{'I': 2, 't': 7, ' ': 13, 'w': 3, 'a': 5, 's': 4, 'b': 2, 'r': 6, 'i': 7, 'g': 3, 'h': 4, 'c': 4, 'o': 3, 'l': 4, 'd': 4, 'y': 2, 'n': 5, 'A': 2, 'p': 2, ',': 2, 'e': 6, 'k': 3, '.': 2}
以上为原始程序,👇下面是自己总结:
先回顾一下使用for函数展开一个字符串:
>>> for i in message:
print(i)
I
t
w
a
s
a
b
r
i
g
h
t
c
o
l
d
d
a
y
i
n
A
p
r
i
l
,
a
n
d
t
h
e
c
l
o
c
k
s
w
e
r
e
s
t
r
i
k
i
n
g
t
h
i
r
t
e
e
n
.
就是这个样子。。。
回到程序,自己做了一个简短修改:
message='It was a bright cold day in April,and the clocks were striking thirteen.'
count={}
for c in message:#character这里我替换成了c,也只是一个参数,用啥都行
count.setdefault(c,0)#检测count{}字典里有没有变量C(这个c是messgae字符串里,从I开始一个个字符往后变化的,没有就赋值0
count[c]=count[c]+1#第一个I赋值为0后加1,便于记录该字符出现1次,
#后续如果再出线该字符,即在上一个count[c]上加1
#这一句很重要,没有的该句的话,所有键(字符)的值都为1,因为值不再加1不会变化,所以导致后面在查询到该字符(键)时,相应的值已经为1,所以均输出1
print(count)
输出结果如下
{'I': 1, 't': 6, ' ': 12, 'w': 2, 'a': 4, 's': 3, 'b': 1, 'r': 5, 'i': 6, 'g': 2, 'h': 3, 'c': 3, 'o': 2, 'l': 3, 'd': 3, 'y': 1, 'n': 4, 'A': 1, 'p': 1, ',': 1, 'e': 5, 'k': 2, '.': 1}