python开发_counter()

python的API中,提到了Counter,它具有统计的功能

下面是我做的demo:

1.统计自定义字符串中每个字符出现的次数

2.读取一个文件,把文件中的内容转化为字符串,统计该字符串中每个字符串出现的次数

运行效果:

测试的文件:

==================================

代码部分:

==================================

 1 #python counter object
 2 
 3 from collections import *
 4 import os
 5 
 6 def get_counter():
 7     '''get the Counter object'''
 8     return Counter()
 9 
10 def str_to_list(s):
11     '''
12     a string covert to list,
13     return an empty list if the string equal None
14     '''
15     if s != None:
16         return [x for x in s]
17     else:
18         return []
19 
20 def counter(c, l):
21     '''统计列表l中每个单词的出现次数,最后返回一个Counter对象'''
22     for word in l:
23         c[word] += 1
24     return c
25 
26 def get_file_str(path):
27     '''打开指定的文件,并且把文件中的内容以字符串的形式返回'''
28     if os.path.exists(path):
29         temp_str = ''
30         with open(path, 'r') as pf:
31             for line in pf:
32                 temp_str += line
33             return temp_str
34     else:
35         print('the file [{}] is not exist!'.format(path))
36 
37 def test_str():
38     #使用自定义字符串测试
39     #统计自定义字符串中每个字符出现的次数
40     cnt = get_counter()
41     temp_str = 'hello,i\'m Hongten,welcome to my space!'
42     temp_list = str_to_list(temp_str)
43     cnt = counter(cnt, temp_list)
44     print(cnt)
45 
46 def test_file():
47     '''
48     读取一个文件,把文件中的内容转化为字符串
49     统计该字符串中每个字符串出现的次数
50     '''
51     cnt = get_counter()
52     temp_path = 'c:\\temp.txt'
53     temp_str = get_file_str(temp_path)
54     temp_list = str_to_list(temp_str)
55     cnt = counter(cnt, temp_list)
56     print(cnt)
57     
58 def main():
59     test_str()
60     print('#' * 50)
61     test_file()
62 
63 if __name__ == '__main__':
64     main()

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏枕边书

搭建自己的PHP框架心得(三)

续言 接着完善自己的PHP框架,本次更新的主要内容有: 介绍了异常处理机制 完善了异常和错误处理 数据表跟Model类的映射 异常处理 异常处理:异常处理是编程...

2396
来自专栏Django Scrapy

环境变量

变量 要解释环境变量,得先明白变量是什么,准确的说应该是 Shell 变量,所谓变量就是计算机中用于记录一个值(不一定是数值,也可以是字符或字符串)的符号,而...

3097
来自专栏C/C++基础

Linux命令(4)——declare/typeset命令(builtin)

declare命令(别名typeset)属shell内建命令,用于申明shell变量并设置变量属性,或查看已定义的shell变量和函数。若不加上任何参数,则会显...

752
来自专栏申龙斌的程序人生

零基础学编程007:FOR循环

在上篇文章《赋值语句》之后,已经可以输出这个枯燥的《复利数据表》的任意一行数据了,例如用这两条语句: i = 100 print( "(1+0.01) ^", ...

3037
来自专栏linux系统运维

正则介绍以及grep

1223
来自专栏ACM算法日常

数塔DP-HDU 2084

在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的: 有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大...

661
来自专栏一个爱吃西瓜的程序员

Web前端基础【3】--JavaScript基础

JavaScript是一种轻量级的客户端脚本语言,和Python语言是一样的,只不过JavaScript是由浏览器进行解释执行的。JavaScript可以插在H...

3614
来自专栏有趣的Python和你

Python数据分析之groupby语法糖对分组进行迭代语法糖一:选取一个或多个列

1294
来自专栏海天一树

NOIP 2018普及组复赛第1题答案详解

本题考察的知识点有两个: (1)输入带空格的字符串 常用的scanf和cin,遇到第一个空格就会停止输入。 C语言可以使用gets()输入带空格的字符串。当然使...

2755
来自专栏编程

Python的解码和编码

使用Python语言做网络爬虫或者写自动化脚本时,总会遇到“中文乱码”的问题,很是头疼。很多“中文乱码”的问题是跟Python的解码/编码有关,所以今天和大家说...

26310

扫码关注云+社区

领取腾讯云代金券