《python编程快速上手——让繁琐的工作自动化》,5.1.5 setdefault()方法,计算字符串中字符出现个数总结

原始程序如下

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}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值