`
ipython
  • 浏览: 289160 次
  • 性别: Icon_minigender_1
  • 来自: 佛山
社区版块
存档分类
最新评论

计算不同的词出现的次数

阅读更多

今天去笔试个java职位,要求写个统计不同词的出现次数,我java写不出来,写了几句py代码上去。
回来后,在群上讨论了一下,写了以下三个方法,前两种我写的,最后一种是别人写的
三种方法用时的比较:

0.405999898911
--------------------------------
1.32800006866
--------------------------------

0.905999898911

 

import random
import time

def make_case (n):
    library = ['aa','bb','cc','ee','dd','ff','gg','hello','google','world','ibm','facebook','sex','girl','program']
    #library = ['aa','bb','cc']
    result = []
    word_len = len(library)-1
    for i in range(n):
        result.append(library[random.randint(0,word_len)])

    return result

def wc1(ss):
  result = {}
  for i in ss:
    try:
      result[i] += 1
    except:
      result[i] = 1
  
  #for i in result:
    #print i,result[i]
    

def wc2(ss):
    ss.sort()
    num  = 1
    prev = 0
    for i in range(1,len(ss)):
        if ss[prev] == ss[i]:
            num += 1
        else:
           # print ss[prev],num
            num = 1
            prev = i
    #print ss[prev],num
    
def wc3(ss):
    temp = set(ss)
    for i in temp:
        #print i,ss.count(i)
        tem = ss.count(i)


def write_line():
    print '-----------------------------------'

def test():
    temp = make_case(1000000)

    t1 = time.time()
    wc1(temp)
    print time.time()-t1

    write_line()

    t2 = time.time()
    wc2(temp)
    print time.time()-t2

    write_line()

    t3 = time.time()
    wc3(temp)
    print time.time()-t3


if __name__ == "__main__":
    test()
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics