当前位置 : 主页 > 编程语言 > python >

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

来源:互联网 收集:自由互联 发布时间:2022-06-24
第一种写法: 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:
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​


上一篇:关于python3格式化字符输出的问题
下一篇:没有了
网友评论