使用python解析有道词典导出的xml格式单词,统计各个首字母出现的次数,并按次数由多到少进行排序


相关实现

导出的xml格式如下

<wordbook>
<item>
<word>portion</word>
<trans><![CDATA[n. 部分;一份;命运vt. 分配;给…嫁妆]]></trans>
<phonetic><![CDATA[['pɔːʃ(ə)n]]]></phonetic>
<tags></tags>
<progress>2</progress>
</item>
</wordbook>

使用python3自带的xml解析器进行解析,使用字典进行保存统计结果

import time
import xml.etree.ElementTree as et # get all word
def get_all_word(uri):
tree = et.parse(uri)
root = tree.getroot()
return root.findall('./item/word') # calculate the first letter frequency of words
def cal_aleph(word_list):
# define dwords to save first letter count
dwords = {}
for cword in word_list:
letter = cword.text.strip()[0].lower()
# judge the letter is english letter
echar = ord(letter)
if(echar >= 97 and echar <= 122):
try:
dwords[letter] += 1
except KeyError:
dwords[letter] = 1;
# order by count desc
dwords = sorted(dwords.items(), key=lambda line:line[1], reverse=True)
return dwords if __name__ == '__main__':
start_time = time.time()
word_list = get_all_word(r'd:\pyzone\youdao.xml')
result = cal_aleph(word_list)
for row in result:
print("%s : %d"%(row[0], row[1]))
end_time = time.time()
print('Costed time: ' + str((end_time - start_time)) + 's')

统计结果如下:

回顾

  • 使用xml.etree.ElementTree的parse解析指定路径的xml文件,root.findall查找指定节点
  • sorted方法对列表进行排序
  • '中文'.isalpha() 结果为True

python统计英文首字母出现的次数的更多相关文章

  1. Python统计日志中每个IP出现次数

    介绍了Python统计日志中每个IP出现次数的方法,实例分析了Python基于正则表达式解析日志文件的相关技巧,需要的朋友可以参考下 本脚本可用于多种日志类型 #-*- coding:utf-8 -* ...

  2. iOS- 本地文本容错搜索引擎2-->如何实现英文(英文首字母,汉语拼音)对中文的搜索?

      1.前言 先闲说几句,最近北京的雾霾真是大,呛的我这攻城师都抗不住了.各位攻城师们一定要爱护好自己的身体!空气好时,少坐多动. 如果条件好的话,最好让你们BOSS搞个室内空气净化器.因为那几天一般 ...

  3. python 统计字符串中指定字符出现次数的方法

    python 统计字符串中指定字符出现次数的方法: strs = "They look good and stick good!" count_set = ['look','goo ...

  4. python统计字符串里每个字符的次数

    方法一: 推导式 dd="ewq4aewtaSDDSFDTFDSWQrtewtyufashas" print {i:dd.count(i) for i in dd} 方法二: co ...

  5. wps取消英文首字母大写功能

    wps中关于首字母大写的功能还是很有用处的,但是有时候对于我们来说却是一种累赘,怎么取消这个功能呢? 新建一个文档之后,点击wps文字,选择工具,选项按钮 然后点击编辑,取消勾选键入时自动进行首字母大 ...

  6. python获取汉字首字母

    获取汉字首字母 关注公众号"轻松学编程"了解更多. 应用场景之一:可用于获取名字首字母,在数据库中查询记录时,可以用它来排序输出. from pytz import unicode ...

  7. python统计喜欢的小说主角出场次数

    这周老师布置了一项作业,让我们回去将自己喜欢的小说里面的主角出场次数统计出来,我对这个充满了兴趣,但我遇到了三个问题: (1)一开始选了一部超长的小说(最爱之一),但是运行时老是不行,老是显示下图错误 ...

  8. python统计英文文本中的回文单词数

    1. 要求: 给定一篇纯英文的文本,统计其中回文单词的比列,并输出其中的回文单词,文本数据如下: This is Everyday Grammar. I am Madam Lucija And I a ...

  9. python pandas根据首字母选行

    ret2.loc[ret2['INNERCODE'].map(lambda x:x[0]=='6' or x[0]=='3' or x[0]=='0' ),:]和matlab不一样的风格 - -直接用 ...

随机推荐

  1. Python入门学习教程:数据库操作,连接MySql数据库

    各位志同道合的同仁可以点击上方关注↑↑↑↑↑↑ 本教程致力于程序员快速掌握Python语言编程. 本文章内容是基于上次课程Python教程:Python教程:连接数据库,对数据进行增删改查操作 和py ...

  2. 使用的 SQL Server 版本不支持数据类型“datetime2”解决办法

    不论下方提示什么数据格式有错误,一般都是entity生成的时候的问题.比如服务器上用的sql2005,自己用的2008. 解决方法: model层生成的model.edmx文件,用记事本打开, 将&l ...

  3. ACM——进制转换

    http://acm.njupt.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1012 进制转换 时间限制(普通/Jav ...

  4. EasyUI兼容IE问题

    上网搜了下,发现说明白的解决方案不多,于是记录了一下: 根本原因是JQuery的版本造成IE8及以下兼容的问题,(由于EasyUI是基于JQuery框架的,而JQuery貌似从2013年为了简洁代码, ...

  5. JDBC对sql server的操作

    1.过程: 1>注册驱动器类:Class.forName()       2>连接数据库:             String url = "jdbc:sqlserver:// ...

  6. mysql更改root密码及root远程登录

    1.更改root密码 use mysql; update user set password=password('petecc') where user='root'; 2.root远程登录 1 up ...

  7. c#保存textbox中的字符串到txt文件中

    /********************** 保存接收按钮 *****************************/ private void SavetxData_Click(object s ...

  8. 2016.08.06计算几何总结测试day1

    T1 bzoj1132[POI2008]TRO 还是太弱了....测试时看到这题直接懵逼,极角排序什么的根本想不起来,只会n^3暴力怎么破......不过竟然有84.....QAQ 正解是n^2log ...

  9. UIView-图层方法

    // // ViewController.m // UIView-图层概念 // // Created by wangtouwang on 15/5/5. // Copyright (c) 2015年 ...

  10. Mac apache配置问题解决

    AH00526: Syntax error on line 20 of /private/etc/apache2/extra/httpd-mpm.conf: Invalid command 'Lock ...