字典相关编程题

1找人程序(3分)
题目内容:

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

程序框架如下:

def find_person(dict_users, strU):
if user is in the dict:
return user’s QQ
else:
return ‘Not Found’
if name == “main”:
create a dict named dict_users
strU = input()
print(find_person(dict_users, strU))

输入格式:

 字符串

输出格式:

 字符串

输入样例:

 xiaoyun

输出样例:

 88888

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

def find_person(dict_users,strU):
    if strU in dict_users:
        return dict_users[strU]
    else:
        return 'Not Found'
if __name__=='__main__':
    name=['xiaoyun','xiaohong','xiaoteng','xiaoyi','xiaoyang']
    qq=['8888','555555','11111','12341234','1212121']
    dict_users=dict(zip(name,qq))
    strU=input()
    print(find_person(dict_users,strU))

2统计中文句子中的词频(3分)
题目内容:

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

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

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

import collections
import copy
s = “我/是/一个/测试/句子/,/大家/赶快/来/统计/我/吧/,/大家/赶快/来/统计/我/吧/,/大家/赶快/来/统计/我/吧/,/重要/事情/说/三遍/!/”
s_list = s.split(’/’)

为避免迭代时修改迭代对象本身,创建一个列表的深拷贝,也可用浅拷贝s_list_backup = s_list[:]

s_list_backup = s_list[:]
[s_list.remove(item) for item in s_list_backup if item in ‘,。!”“’]
collections.Counter(s_list)
这个问题也可以通过字典来解决,请编写用字典解决本问题的程序,为便于OJ系统自动判断,程序最后输出某个单词的词频。

程序参考框架

def countfeq(s):
… …
return a dict

if name == “main”:
s = “Not clumsy person in this world, only lazy people, only people can not hold out until the last.”
s_dict = countfeq(s.lower())
word = input()
基于s_dict判断word的词频并输出(可能是0次)

输入格式:

字符串

输出格式:

整数

输入样例(因为oj系统限制,测试用例设为判断英文单词个数(不区分大小写,全部转换成小写字符处理),请注意英文标点,假设仅包含,和.):

not

输出样例:

2

def countfeq(s,word):
    s_list=s.split(' ')
    s_dict={}
    for item in s_list:
        if item[-1] in ',.\'"':
            item=item[:-1]
        if item not in s_dict:
            s_dict[item]=1
        else:
            s_dict[item]+=1
    if word in s_dict:
        print(s_dict[word])
    else:
        print ("0")

if __name__=="__main__":
    s = "Not clumsy person in this world, only lazy people, only people can not hold out until the last."
    word=input()
    s_dict = countfeq(s.lower(),word)

你可能感兴趣的:(Python学习笔记)