测验6: 组合数据类型 (第6周)
这是python123官网上联合MOOC的Python程序设计(第10期)答案
单选题
第六题,直接使用大括号 { } 会生成一个空的字典,生成空集合需要使用函数set()
程序题
1.数字不同数之和
要找到 n 中的不同数字,集合类型就是一个很不错的选择,因为集合中的元素不可重复。
注意一下,这里不要使用 eval 进行读取,直接用 input 读取就行了,因为如果使用了 eval 读取,s 变成 int 型之后不能直接转成集合类型。集合 fall 中的元素都是字符型,所以要用 eval 将引号去掉,变成 int 型方便直接相加。
s=input()
fall=set(s)
sum=0
for i in fall:
sum+=eval(i)
print(sum)
2.人名最多数统计
一个人名对应一个次数,与字典的“键值对”模式简直完美匹配,使用字典型数据结构是再好不过了。
这个题的解法是,先将人名从字符串中切分出来,再将人名和对应次数一一写进字典中,最后 for 循环遍历一遍找到最大次数和对应的人名即可。
s = '''双儿 洪七公 赵敏 赵敏 逍遥子 鳌拜 殷天正 金轮法王 乔峰 杨过 洪七公 郭靖
杨逍 鳌拜 殷天正 段誉 杨逍 慕容复 阿紫 慕容复 郭芙 乔峰 令狐冲 郭芙
金轮法王 小龙女 杨过 慕容复 梅超风 李莫愁 洪七公 张无忌 梅超风 杨逍
鳌拜 岳不群 黄药师 黄蓉 段誉 金轮法王 忽必烈 忽必烈 张三丰 乔峰 乔峰
阿紫 乔峰 金轮法王 袁冠南 张无忌 郭襄 黄蓉 李莫愁 赵敏 赵敏 郭芙 张三丰
乔峰 赵敏 梅超风 双儿 鳌拜 陈家洛 袁冠南 郭芙 郭芙 杨逍 赵敏 金轮法王
忽必烈 慕容复 张三丰 赵敏 杨逍 令狐冲 黄药师 袁冠南 杨逍 完颜洪烈 殷天正
李莫愁 阿紫 逍遥子 乔峰 逍遥子 完颜洪烈 郭芙 杨逍 张无忌 杨过 慕容复
逍遥子 虚竹 双儿 乔峰 郭芙 黄蓉 李莫愁 陈家洛 杨过 忽必烈 鳌拜 王语嫣
洪七公 韦小宝 阿朱 梅超风 段誉 岳灵珊 完颜洪烈 乔峰 段誉 杨过 杨过 慕容复
黄蓉 杨过 阿紫 杨逍 张三丰 张三丰 赵敏 张三丰 杨逍 黄蓉 金轮法王 郭襄
张三丰 令狐冲 赵敏 郭芙 韦小宝 黄药师 阿紫 韦小宝 金轮法王 杨逍 令狐冲 阿紫
洪七公 袁冠南 双儿 郭靖 鳌拜 谢逊 阿紫 郭襄 梅超风 张无忌 段誉 忽必烈
完颜洪烈 双儿 逍遥子 谢逊 完颜洪烈 殷天正 金轮法王 张三丰 双儿 郭襄 阿朱
郭襄 双儿 李莫愁 郭襄 忽必烈 金轮法王 张无忌 鳌拜 忽必烈 郭襄 令狐冲
谢逊 梅超风 殷天正 段誉 袁冠南 张三丰 王语嫣 阿紫 谢逊 杨过 郭靖 黄蓉
双儿 灭绝师太 段誉 张无忌 陈家洛 黄蓉 鳌拜 黄药师 逍遥子 忽必烈 赵敏
逍遥子 完颜洪烈 金轮法王 双儿 鳌拜 洪七公 郭芙 郭襄 赵敏'''
sp=s.split() # split函数默认分隔符为空字符
dic={}
for i in sp:
if i in dic:
dic[i]+=1
else:
dic[i]=1
name=""
maxs=1
for i in dic:
if(dic[i]>maxs):
maxs=dic[i]
name=i
print(name)