0
点赞
收藏
分享

微信扫一扫

关于python统计一个列表中每个元素出现的频率

第一种写法:

a = ['h','h','e','a','a']
result = {}
for i in a:
if i not in result:
result[i] = 1
else:
result[i] += 1
print(result)

最后统计成一个字典,字典的键是列表中元素的值,字典的值是出现的次数
不过每循环一次都要进行逻辑判断很浪费性能

第二种写法:

a = ['h','h','e','a','a']
result = {}
for i in a:
result.setdefault(i,0)
result[i] += 1

print(result)

​setdefault(key,value)​​函数会自动判断字典中是否包含对应的键,如果包含那么不对字典进行操作,如果不包含那么对字典对应的键设置一个值,第一个参数是键,第二个参数是数值

这样的代码比较简洁,并且比第一种写法少进行一些逻辑判断,具体实现原理可以阅读这个函数的源码

其实还可以利用​​collections​​ 模块下的类,不过我打算等我学完整个模块,单独写(水)一篇文章


作者:Hello_wshuo​


举报

相关推荐

0 条评论