字典翻转输出

描述

读入一个字典类型的字符串,反转其中键值对输出。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

即,读入字典key:value模式,输出value:key模式。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

输入格式

用户输入的字典格式的字符串,如果输入不正确,提示:输入错误。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

输出格式‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

给定字典d,按照print(d)方式输出‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

输入输出示例

输入 输出
示例 {"a": 1, "b": 2} {1: 'a', 2: 'b'}
ori_dic = eval(input())
dic={}
if(not isinstance(ori_dic,dict)):print('输入错误')
else:for item in ori_dic.keys():dic[ori_dic.get(item)]=itemprint(dic)

eval函数:返回传入字符串的表达式的结果,即将字符串当成有效的表达式进行计算

python中的非运算为not(而非!),不等于仍为!=

dict.get(key, default=None):返回指定键的值,如果值不在字典中返回default值

dict.keys():以列表返回一个字典所有的键

《沉默的羔羊》之最多单词

描述

附件是《沉默的羔羊》中文版内容,请读入内容,分词后输出长度大于2且最多的单词。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

如果存在多个单词出现频率一致,请输出按照Unicode排序后最大的单词。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

输入格式

文件‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

输出格式

字符串‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

输入输出示例

仅提供一个输出示范样例。

输入 输出
示例 1 羔羊
import jieba
txt = open("沉默的羔羊.txt",encoding="utf-8").read()
words = jieba.lcut(txt)
counts = {}
for word in words:if len(word) <=2:  continueelse:               counts[word]= counts.get(word,0)+1
res=sorted(counts.items(),key=lambda x:x[1],reverse=True )
print(res[0][0])

 open函数:函数用于创建或打开指定文件

jieba.lcut(): 精确模式,将句子最精确地切开,适合文本分析

sorted(iterable, cmp=None, key=None, reverse=False)

 iterable -- 可迭代对象

 cmp -- 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0

 key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序

 reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)

# lambda表达式的x,y分别对应列表中每个元组中的第一项和第二项
>>> L=[('b',2),('a',1),('c',3),('d',4)]
>>> sorted(L, cmp=lambda x,y:cmp(x[1],y[1]))   # 利用cmp函数
[('a', 1), ('b', 2), ('c', 3), ('d', 4)]
# lambda表达式的x即列表中每个元组中的第一项
>>> sorted(L, key=lambda x:x[1])               # 利用key
[('a', 1), ('b', 2), ('c', 3), ('d', 4)]

sort 与 sorted 区别:

sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。

list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。

关于代码对sorted返回的新列表

由于sorted返回的是一个这样列表:[{key1,value1},{key2,value2},...]

人名最多数统计

描述

编程模板中给出了一个字符串,其中包含了含有重复的人名,请直接输出出现最多的人名。

s = '''双儿 洪七公 赵敏 赵敏 逍遥子 鳌拜 殷天正 金轮法王 乔峰 杨过 洪七公 郭靖 杨逍 鳌拜 殷天正 段誉 杨逍 慕容复 阿紫 慕容复 郭芙 乔峰 令狐冲 郭芙 金轮法王 小龙女 杨过 慕容复 梅超风 李莫愁 洪七公 张无忌 梅超风 杨逍 鳌拜 岳不群 黄药师 黄蓉 段誉 金轮法王 忽必烈 忽必烈 张三丰 乔峰 乔峰 阿紫 乔峰 金轮法王 袁冠南 张无忌 郭襄 黄蓉 李莫愁 赵敏 赵敏 郭芙 张三丰 乔峰 赵敏 梅超风 双儿 鳌拜 陈家洛 袁冠南 郭芙 郭芙 杨逍 赵敏 金轮法王 忽必烈 慕容复 张三丰 赵敏 杨逍 令狐冲 黄药师 袁冠南 杨逍 完颜洪烈 殷天正 李莫愁 阿紫 逍遥子 乔峰 逍遥子 完颜洪烈 郭芙 杨逍 张无忌 杨过 慕容复 逍遥子 虚竹 双儿 乔峰 郭芙 黄蓉 李莫愁 陈家洛 杨过 忽必烈 鳌拜 王语嫣 洪七公 韦小宝 阿朱 梅超风 段誉 岳灵珊 完颜洪烈 乔峰 段誉 杨过 杨过 慕容复 黄蓉 杨过 阿紫 杨逍 张三丰 张三丰 赵敏 张三丰 杨逍 黄蓉 金轮法王 郭襄 张三丰 令狐冲 赵敏 郭芙 韦小宝 黄药师 阿紫 韦小宝 金轮法王 杨逍 令狐冲 阿紫 洪七公 袁冠南 双儿 郭靖 鳌拜 谢逊 阿紫 郭襄 梅超风 张无忌 段誉 忽必烈 完颜洪烈 双儿 逍遥子 谢逊 完颜洪烈 殷天正 金轮法王 张三丰 双儿 郭襄 阿朱 郭襄 双儿 李莫愁 郭襄 忽必烈 金轮法王 张无忌 鳌拜 忽必烈 郭襄 令狐冲 谢逊 梅超风 殷天正 段誉 袁冠南 张三丰 王语嫣 阿紫 谢逊 杨过 郭靖 黄蓉 双儿 灭绝师太 段誉 张无忌 陈家洛 黄蓉 鳌拜 黄药师 逍遥子 忽必烈 赵敏 逍遥子 完颜洪烈 金轮法王 双儿 鳌拜 洪七公 郭芙 郭襄 赵敏'''
s=s.split()
counts={}
for name in s:counts[name]=counts.get(name,0)+1
res=sorted(counts.items(),key=lambda x:x[1],reverse=True)
print(res[0][0])

例题

1.重复元素判定。编写一个函数,接受列表作为参数,如果一个元素在列表中出现了不止一次,则返回True,但不要改变原来列表的值。同时编写调用这个函数和测试结果的程序:

def hasRep(ls):for item in ls:if ls.count(item) >= 2:return Truereturn Falsedata = eval(input())
print(hasRep(data))

list.count(obj):统计某个元素在列表中出现的次数

2.重复元素判定续。利用集合的无重复性改编程题1,获得一个更快更简洁的版本。

def hasRep_Set(ls):temp = set(ls)if len(temp) != len(ls):return Trueelse:return Falsedata = eval(input())
print(hasRep_Set(data))

set(iterable):返回新的集合对象(转化为集合)

3.《红楼梦》人物统计。编写程序统计《红楼梦》中前5位出场最多的人物

import jieba
excludes = {'什么', '一个', '我们', '你们', '如今', '说道', '知道', '起来', '这里','奶奶','姑娘', '出来', '众人', '那里', '自己', '他们', '一面', '只见', '怎么','老太太','两个', '没有', '不是', '不知', '这个', '听见', '这样', '进来', '咱们','太太','告诉', '就是', '东西', '回来', '只是', '大家',  '只得', '丫头','姐姐','不用','过来', '心里', '如此', '今日', '这些', '不敢', '出去', '所以', '不过', '的话','不好', '一时', '不能', '银子', '几个', '答应', '二人', '还有', '只管', '这么','说话', '一回', '那边', '这话', '外头', '打发', '自然', '今儿', '罢了', '屋里','那些', '听说', '如何', '问道', '看见','二爷','小丫头','人家','妹妹','老爷'}txt = open ("红楼梦.txt","r",encoding="UTF-8").read()
words = jieba.lcut(txt)
counts = {}
for word in words:if len(word) == 1:continueelif word == "宝玉" or word == "宝二爷":rword = "贾宝玉"elif word == "凤姐" or word == "凤辣子" or word == "凤姐儿" or word == "琏二奶奶" or word == "凤丫头" or word == "凤哥儿":rword = "王熙凤"elif word == "老祖宗" or word == "老太君":rword = "贾母"elif word == "颦颦" or word == "林姑娘" or word == "黛玉" or word == "林妹妹" or word == "潇湘妃子" or word == "林丫头":rword = "林黛玉"elif word == "宝姑娘" or word == "宝丫头" or word == "蘅芜君" or word == "宝姐姐" or word == "宝钗":rword = "薛宝钗"elif word == "湘云":rword = "史湘云"elif word == "存周":rword = "贾政"elif word == "花珍珠" or word == "花大姑娘":rword = "袭人"else:rword = wordcounts[rword] = counts.get(rword, 0) + 1
for word in excludes:del counts[word]
items = list(counts.items())
items.sort(key=lambda x:x[1], reverse=True)
for i in range(5):word, count = items[i]print ("{0:{2}<10}{1:{2}>5}".format(word, count,chr(12288)))
print ("{0:{2}<10}{1:{2}>5}".format(word, count,chr(12288)))

{0}和{1}分别代表format内需要被格式化的变量,{0}代表word,{1}代表count

<10表示左对齐,并占10个位置,>5表示右对齐,占5个位置 

在PyCharm中引入jieba

Python练习(一)相关推荐

  1. Github配置(git+vscode+python+jupyter)

    ①下载git 打开 git bash 工具的用户名和密码存储 $ git config --global user.name "Your Name" $ git config -- ...

  2. 【实验楼】python简明教程

    ①终端输入python进入 欣赏完自己的杰作后,按 Ctrl + D 输入一个 EOF 字符来退出解释器,你也可以键入 exit() 来退出解释器. ②vim键盘快捷功能分布 ③这里需要注意如果程序中 ...

  3. 【Kaggle Learn】Python 5-8

    五. Booleans and Conditionals Using booleans for branching logic x = True print(x) print(type(x))''' ...

  4. 【Kaggle Learn】Python 1-4

    [Kaggle Learn]Python https://www.kaggle.com/learn/python 一. Hello, Python A quick introduction to Py ...

  5. 使用python愉快地做高数线代题目~

    今天接触到了python,发现真是极易上手啊!对比c语言是什么鬼东西= = 诶,等下,看完教学文章发现TA在下面写了这句话 如果做了前面的内容你可能已被吸引了,觉得c语言真的是废材! 不...不是的. ...

  6. python 位运算与等号_Python 运算符

    和大多数语言一样,Python也有很多运算符,并且运算符跟其他语言的运算符大同小异接下来一一介绍: 算术运算符: 运算符描述实例 +加 - 两个对象相加a+b的输出结果是30 -减 - 得到复数或者一 ...

  7. python减小内存占用_如何将Python内存占用缩小20倍?

    当程序执行过程中RAM中有大量对象处于活动状态时,可能会出现内存问题,特别是在对可用内存总量有限制的情况下. 下面概述了一些减小对象大小的方法,这些方法可以显著减少纯Python程序所需的RAM数量. ...

  8. python中排序英文单词怎么写_Python实现对文件进行单词划分并去重排序操作示例...

    本文实例讲述了Python实现对文件进行单词划分并去重排序操作.,具体如下: 文件名:test1.txt 文件内容: But soft what light through yonder window ...

  9. python程序如何执行死刑图片_如何判断对象已死

    已死的对象就是不可能被任何途径使用的对象,有以下几种方法判断一个对象是否已经死了: 引用计数 给对象添加一个引用计数器,每当有一个地方引用他,计算器就加 1:当引用失效时,计数器减 1:任何时刻计数器 ...

  10. Python gRPC 安装

    1. 安装依赖库 sudo pip3 install grpcio sudo pip3 install protobuf sudo pip3 install grpcio_tools 2. 生成对应文 ...

最新文章

  1. 《智慧书》格言241-250
  2. python全栈-Day 14
  3. DL之DNN优化技术:自定义MultiLayerNet【5*100+ReLU】对MNIST数据集训练进而比较三种权重初始值(Xavier参数初始化、He参数初始化)性能差异
  4. 阿里云——ECS——Linux服务器购买流程——超级细致
  5. SharePoint REST API - 确定REST端点URL
  6. java placeholder_java – 如何在JTextfield中设置像Placeholder一样的文本
  7. MyBatis 实现关联表查询
  8. IOS 学习笔记 2015-03-24 OC-API-不可变字符串
  9. 拿空间换时间的字典-Python基础前传(9)
  10. 水经注下载地图,导出arcgis瓦片,然后通过geoserver+geowebcache发布地图
  11. Processing 椭圆运动模拟
  12. python大神年薪_我程序员年薪 80 万被亲戚鄙视不如在二本教书的博士生?
  13. I2C通讯常见问题汇总
  14. IAR Embedded Workbench 将支持 RISC-V 太空级处理器 NOEL-V
  15. CPU位数、操作系统位数和编译器位数关系
  16. arris sbr-ac1900p/sbr-ac3200p梅林固件
  17. MacBook不接电源实现外接显示器功能
  18. mysql 赋权限_MySQL赋予用户权限命令总结
  19. Oracle修改用户名密码
  20. HTTP contentType

热门文章

  1. android调用摄像头录像的代码(录像并生成mp4文件)
  2. amd cpu排行_2019 CPU天梯图(intel和AMD CPU性能排行)
  3. QQ桌球瞄准器开发(6)(7) 完结篇
  4. oeasy教您玩转linux010105详细手册man
  5. 35岁的程序员真的到头了么?国外的大龄程序员在干什么?
  6. Excel大家来找茬,两列数据对比找出不同数据
  7. 什么是token以及token的原理
  8. 5G即将全面普及,我们到底该换手机卡还是换手机?
  9. oracle 除数不能为0
  10. 给C盘释放五个G的空间