日頃から書いてないと忘れる。
list.count('a')でリストlist=['a','b','a',...]内のaの数を数える。
重複の削除はif not文をうまく活用する。
#! /usr/bin/env python # -*- coding: utf-8 -*- import re sent = u"日本語で書いた日本語の文を解析します。" arr=[] for i in range(len(sent)-1): arr.append(sent[i]+sent[i+1]) comb = [(a,arr.count(a)) for a in arr] rmv = [] for c in comb: if not c in rmv: rmv.append(c) #重複を削除(if notを使うのがミソ) for r in rmv: print r[0],r[1]
sorted()でソート機能つけた。
あと、ファイル読み込みも。
#! /usr/bin/env python # -*- coding: utf-8 -*- import re import codecs filename = raw_input("input the file name:") fin = codecs.open(filename,"r","utf-8") fout = codecs.open("out.txt","w","utf-8") #sent = u"日本語で書いた日本語の文を解析します。" arr = [] for line in fin: for i in range(len(line)-1): arr.append(line[i]+line[i+1]) comb = [(a,arr.count(a)) for a in arr] rmv = [] for c in comb: if not c in rmv: rmv.append(c) #重複を削除(if notを使うのがミソ) rmv = sorted(rmv,key=lambda x:int(x[1]),reverse=True) for r in rmv: print r[0],r[1] fout.write(r[0]+str(r[1])+"\n") fin.close() fout.close()