1 统计数字出现次数
from random import randint
生成数据:data=[randint(0,10) for x in xrange(30)]
统计数字个数:
方法一:建立初始字典c=dict.fromkeys(data,0)
print c
{1:0,2:0,3:0,……}
for x in data:
c[x]+=1
print c
方法二:collecttions下的counter
from collecttions import Counter
c=Counter(data)
print c
返回的是元组形式
打印次数最多的前n个元素
print c.most_common(n)
2 统计单词个数
正则模块
import re
打开文件并读入
txt=open(‘filename’,’r’).read()
用非字母进行分割‘\W+’
wordlist=re.split(‘\W+’,txt)
用计数器collecttions的Counter
worddict=Counter(wordlist)
打印前10个频数最多的
print worddict.most_common(10)
3 排序
列表排序
ex1:sorted([1,5,2,6,4])
结果:[1.2,4,5,6]
字典排序(默认按键key排序升序)
ex2:sorted({x:randint(60,100) for x in ‘xyzabc’})
结果:[a,b,c,x,y,z]
元组排序(默认按第一位排序
(12,’a’)>(11,’b’) :ture
要想对字典的值排序
1 可以转化为元组列表排序,需用到zip函数将多个列表转化成对应元组列表
d={x:randint(60,100) for x in ‘xyzabc’}
tuples=zip(d.itervalues(),d.iterkeys())
d.values()和d.keys() 与d.itervalues()区别:前者站内存是一个列表,后者看成迭代器
print sorted(tuples)
2 直接使用sorted的参数
返回字典元组列表(不用zip了):d.items()
sorted(d.items(),key=lambda x:x[1])