python技巧(3)

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])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值