用Python玩转数据(三)

1 找人程序(4分)


题目内容:


有5名某界大佬xiaoyun、xiaohong、xiaoteng、xiaoyi和xiaoyang,其QQ号分别是88888、5555555、11111、12341234和1212121,用字典将这些数据组织起来。编程实现以下功能:用户输入某一个大佬的姓名后输出其QQ号,如果输入的姓名不在字典中则输出字符串“Not Found”。

程序框架如下:

  1. def find_person(dict_users, strU):
  2.      if user is in the dict:
  3.         return user's QQ
  4.      else:
  5.         return 'Not Found'
  6. if __name__ == "__main__":
  7.      create a dict named dict_users
  8.      strU =  input()
  9.      print(find_person(dict_users, strU))

输入格式:

     字符串


输出格式:

     字符串


输入样例:

     xiaoyun


输出样例:

     88888

时间限制:500ms内存限制:32000kb

def find_person(dict_users, strU):  
    if strU in dict_users.keys():  
        userQQ = dict_users[strU]  
        return userQQ  
    else:  
        return 'Not Found'  
if __name__ == "__main__":  
    dict_users={'xiaoyun':'88888','xiaohong':'5555555','xiaoteng':'11111','xiaoyi':'12341234','xiaoyang':'1212121'}  
    strU =  input()  
    print(find_person(dict_users, strU))

2 统计句子中的词频次数(3分)


题目内容:


对于一个已分词的句子(可方便地扩展到统计文件中的词频):

我/是/一个/测试/句子/,/大家/赶快/来/统计/我/吧/,/大家/赶快/来/统计/我/吧/,/大家/赶快/来/统计/我/吧/,/重要/事情/说/三遍/!

可以用collections模块中的Counter()函数方便地统计词频,例如可用如下代码:

  1. import collections
  2. = "我/是/一个/测试/句子/,/大家/赶快/来/统计/我/吧/,/大家/赶快/来/统计/我/吧/,/大家/赶快/来/统计/我/吧/,/重要/事情/说/三遍/!/"
  3. s_list = s.split('/'
  4. [s_list.remove(item) for item in s_list if item in ',。!”“']
  5. collections.Counter(s_list)
这个问题也可以通过字典来解决,请编写用字典解决本问题的程序,为便于OJ系统自动判断,程序最后输出字符串中包含的不同词的个数。

程序参考框架

  1. def countfeq(s):
  2.    ... ...
  3.    return dict
  4. if __name__ == "__main__":
  5.    = input()
  6.    ... ...
  7.    s_dict = countfeq(s)
  8.    print(len(s_dict.keys()))

输入格式:

字符串


输出格式:

整数


输入样例(因为oj系统限制,测试用例设为判断英文单词个数,请注意英文标点,假设仅包含,和.):

Spring/is/coming/./Spring/is/coming/.


输出样例:

3

时间限制:500ms内存限制:32000kb
def countfeq(s):  
   list=s.split('/')  
   [list.remove(item) for item in list if item in ', . ) :']  
   dict={}  
   for i in list:  
       if i in dict:  
           dict[i]+=1  
       else:  
           dict[i]=1  
   return dict  
if __name__ == "__main__":  
   s = input()  
   s_dict = countfeq(s)  
   print(len(s_dict.keys()))



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值