陪你刷算法系列

Python 进行词频统计

2018-01-08  本文已影响69人  SHAN某人

1. 利用字典map<str,int>实现

# 利用 字典map<str,int> 实现
def wordCount(s):
    mp = {}
    for i in s:
        mp[i]=mp.get(i,0)+1  
        #mp[i]+=1
    for k in mp.keys():
        # print(type(k))    # 打印数据的类型 # print(type(mp[k])) 
        print('%s -> %d'%(k,mp[k])) # print("{} -> {}".format(k, mp[k]))

2.利用collections模块中的Counter对象

词频统计
# 利用collections模块中的Counter对象
from collections import Counter
def WC(s):
    return Counter(s)
print(WC('dsfhsdiufhudsohfoo'))

3. 算法: 判断两个词是否互为变位词

#  判断两个字符是否互为变位词

import sys
s1 = sys.argv[1]
s2 = sys.argv[2]

# map 字频统计
def isAnagrams(s1,s2):
    return wordCount(s1) == wordCount(s2) 
#  Counter字频统计
from collections import Counter
def isAnagrams2(s1,s2):
    return Counter(s1) == Counter(s2) 

def wordCount(s):
    mp = {}
    for i in s:
        mp[i]=mp.get(i,0)+1  
        #mp[i]+=1
    for k in mp.keys():
        # print(type(k))    # 打印数据的类型
        # print(type(mp[k])) 
        print('%s -> %d'%(k,mp[k])) # print("{} -> {}".format(k, mp[k]))
    return mp
    
print(isAnagrams(s1,s2))

print(isAnagrams2(s1,s2))
上一篇 下一篇

猜你喜欢

热点阅读