python3简单代码_各种Python简单功能代码

一、统计txt中英文单词出现的次数

1 importstring                  #处理文本时,需要去除跟在单词后的标点。所以用到string模块2

3 filename=open('sampleFile.txt')4

5 filelines=filename.readlines()6 filename.close()7

8 word_cnt={}9

10 for line infilelines:11 line=line.rstrip()              #去除文本后的'\n'12 identity=string.maketrans(' ',' ')      #为了配合translate函数,必须有一个table来表明将字符串的某字符替换成为另一种字符。虽然本功能中无须替换,但还是写了这么个凑数的变量。不知道除translate函数外,有没有更方便的去掉特定字符的函数?13 pun_num=string.punctuation+string.digits    #指定删除的字符为:标点符号和数字14 line=line.translate(identity,pun_num)      #完成字符串中标点符号和数字的删除15 line=line.lower()                  #将单词中的字母全部转换为小写字母

16 word_list=line.split(' ')             #以空格为标志,将文本中的一行断开成单词。17 for word inword_list:18 ifword_cnt.has_key(word):19 word_cnt[word]+=1

20 else:21 word_cnt[word]=1

22

23 result=sorted(word_cnt.iteritems(),key=lambda d:d[1],reverse=True)    #将字典按值的大小进行排序24 print result

?如何将字典按值进行排序呢?

dict.iteritems(): an interator over the (key, value) items of D

lambda x:x+1    表明如果输入为x,则将其转化为x+1输出。lambda d:d[1]表示若访问(key,value),则输出value(即d[1],d[0]表示key)。这里的d可换作任意变量名,其作用为指代dict.iteritems()所返回的变量

reverse=True表示按值进行从大到小的排序;reverse=False表示按值进行从小到大的排序

说明:代码的运行结果中,英文符号'被转换成了\xe2\x80\x99。不了解为什么会这样(应该与编码有关),也不清楚可以怎样解决。

二、将序列中重复的元素去除

def unique(s):

'''return a list without duplicate element'''

try:

return set(s)

except TypeError:

pass

t = list(s)

try:

t.sort()

except TypeError:

del t

else:

return [x for i, x in enumerate(t) if not i or x != t[i-1]]

u = []

for x in s:

if x not in u:

u.append(x)

return u

if __name__ == '__main__':

s = [1, 2, 3, 5, 6, 6, 5]

print unique(s

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值