python输入一段英文,计算每个单词或数字出现的次数,并以字典方式输出。

2023-10-27

菜农作业:Python_GitHub_L3_Question22

仅供记录自己在做题时候的一些思考。本题目可以不用字典来完成,只是为了练习字典的使用。

题目:

Question 22
Level 3

Question:
Write a program to compute the frequency of the words from the input. The output should output after sorting the key alphanumerically.
Suppose the following input is supplied to the program:
New to Python or choosing between Python 2 and Python 3? Read Python 2 or Python 3.
Then, the output should be:
2:2
3.:1
3?:1
New:1
Python:5
Read:1
and:1
between:1
choosing:1
or:2
to:1
"""

输入一段英文,计算每个单词或数字出现的次数。(这次有标点,但并没有加以区分,而是单独计数)

思路:

输入的字符串中会有多个重复的字符串,想要计数可以使用count函数。

这个题目更适合使用字典来解决,毕竟字典里的key不会重复,如果输入的内容重复了,就直接覆盖。

先将输入的字符串按照空格进行切分,该函数在前面的Q8中有类似的(Q8是按照逗号进行切分,将条件稍微更改即可)

切分代码如下:

def slipkg(string):
    # 将一整串字符串按空格间隔拆分,
    strlist = []
    str2 = ""
    for str1 in string:
        if str1 != " ":
            str2 += str1
        else:
            strlist.append(str2)
            str2 = ""
    strlist.append(str2)

    return strlist

该段函数在GitHub第21题中使用,于是在22题中我直接引用了。

先建立一个空的字典。(这里可以仔细了解字典的具体用法,包括添加删除key和value,如何在空字典中添加key和value等,本题目主要用到了在空字典中添加key和value)

dict有很多内置函数,引用时与类中对象引用方法一致:dict.函数名(也许字典也就是某一类中的实例化对象呢?道行尚浅,不敢乱言)

遍历切分后得到的字符串,(相当于字典里的key),直接在循环里作为key产生,其对应的value就是列表中该字符串出现的次数。

代码如下:

# 计算输入字符串的重复次数,并输出
from Question21 import slipkg
dict = {}

str = input("输入一段英文,输出重复字符串数量:")
list = slipkg(str)
for item in list:
    dict[item] = list.count(item)
print(dict)

这里输出的内容和题目中的不太一样,这里直接是一行,那我想输出竖着的怎么办呢?

好说,再来一个循环,将print放在循环里。

于是这样写:

for key, value in dict:
    print(key, ":", value)

然后发现:

报错了。

为什么报错?value确实在字典里的呀?

或许把代码改成这样执行一下:

for key in dict:
    print(key)

这样不会报错,并输出了key。

其实value是储存在key内部的,不同的key对应了不同的value。那么,问题:我可以依次用for循环输出key中对应的value吗?

我认为可以的:

for key in dict:
    print(key, dict[key])

查看资料发现字典里有个函数叫item?

for key, value in dict.items():
    print(key, ":", value)

这样我就可以把value也放在for循环语句中,总感觉没有第一个print简单粗暴易懂。

字典中的其他函数目前还没用做题遇到过,遇到了再用,用几遍之后才能记得更清楚,搜一搜大佬的资料,扒一扒文章的精化固然重要,但自己思考的过程、对每一个步骤出现bug而提出问题、解决问题的过程,更加重要。

菜农加油!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python输入一段英文,计算每个单词或数字出现的次数,并以字典方式输出。 的相关文章

随机推荐

  • BlockBank六扇门社区AMA内容记录

    参与嘉宾 NOLVIA SERRANO GABRIEL HIRIS 主持人 BlockBank社区志愿者 喵喵参与嘉宾 NOLVIA SERRANO GABRIEL HIRIS 主持人 BlockBank社区志愿者 喵喵 AMA Topic
  • PyTorch笔记

    PyTorch快速入门 函数名后面带下划线 的函数会修改Tensor本身 例如 x add y 和x t 会改变 x 但x add y 和x t 返回一个新的Tensor 而x不变 Tensor和numpy对象共享内存 所以他们之间的转换很
  • Dijkstra算法-(迪杰斯特拉)算法的迭代实现与优先队列实现 图解算法过程

    Dijkstra算法 迪杰斯特拉 算法之迭代实现 Dijkstra算法 迪杰斯特拉 算法之优先队列实现 该算法的核心原理 很简单 如下图所示 先说说Dijkstra算法 迪杰斯特拉 算法之迭代实现 如下图为详细步骤 代码如下 两种实现方法都
  • 各领域逐步引入人脸识别可谓是百花齐放

    在国内 从消费领域到网络支付 安保 金融 医疗 交通等领域 都在逐步地引入人脸识别 可谓是百花齐放 而无论是地铁刷脸进站 医院刷脸就诊 还是商超刷脸结账 其实最终都离不开一个主题刷脸支付 近年来 生物识别技术的商用速度不断加快 应用范围愈发
  • blender python 不同的obj alpha设置不同 颜色 并保存

    目录 生成遮罩层 并且渲染保存 生成蓝色遮罩层并保存遮罩结果 blender 不同的obj设置不同的alpha颜色
  • 【笔记】2022 Golang+Cobra 学习Cli命令行工具

    github源代码网址 GitHub spf13 cobra A Commander for modern Go CLI interactions 一 安装 由于Cobra更新新的版本 所以网络上之前的教程都需要进行修改 例 根据老的方法进
  • C练题笔记之:Leetcode-24. 两两交换链表中的节点

    题目 给你一个链表 两两交换其中相邻的节点 并返回交换后链表的头节点 你必须在不修改节点内部的值的情况下完成本题 即 只能进行节点交换 示例 1 输入 head 1 2 3 4 输出 2 1 4 3 示例 2 输入 head 输出 示例 3
  • 作用域、生命周期 及 Request、session、application 区别

    1 request 请求作用域 对象内数据存活范围是当客户端向服务器发送一个请求 服务器向客户端返回一个响应之后 该请求对象就被销毁了 之后再次发送的请求也无法获取之前request对象存放的任何数据 request的setAttribut
  • bulk这个词的用法_bulk是什么意思

    bulk的意思 解释 过去式 bulked 过去分词 bulked 现在分词 bulking 复数形式 bulks bulk 基本解释 名词 大 体积 大块 大量 大多数 大部分 主体 及物 不及物动词变得越来越大 或重要 不及物动词显得庞
  • Java字符串的比较(equals()、equalsIgnoreCase()和compareTo())

    在 Java 中 比较字符串的常用方法有 3 个 equals 方法 equalsIgnoreCase 方法 compareTo 方法 下面详细介绍这 3 个方法的使用 equals 方法 equals 方法将逐个地比较两个字符串的每个字符
  • 国网学籍跨省转学页面不显示问题解决办法

    1 火狐浏览器登陆学籍网 跨省转学显示 未连接 有潜在的安全问题 Firefox 检测到潜在的安全威胁 并因 ksyw zxxs moe edu cn 要求安全连接而没有继续 2 点击高级 再点击查看证书 3 下载证书 4 IE浏览器登陆学
  • 2023年电气,电子与信息工程国际会议(ISEEIE 2023)

    2023年电气 电子与信息工程国际会议 ISEEIE 2023 重要信息 会议网址 www iseeie org 会议时间 2023年2月24 26日 召开地点 新加坡 截稿时间 2022年12月31日 录用通知 投稿后2周内 收录检索 E
  • 搭建portus管理docker registry私服

    本节课将介绍Docker Registry以及带UI管理的仓库管理软件Portus搭建过程和管理使用 Portus介绍 Portus by SUSE 是一个带UI管理的仓库管理软件 用于Docker Registry API V2 的开源和
  • idea中,引用不到项目中的类

    1 查看src是否为source root文件 只有该文件下的java文件才会被编译 2 IDEA中有缓存 应该是项目中的缓存 建立的索引报错了 导致不能正常引用现有的类 解决方案 清理缓存并重启
  • 使用excel估计GARCH模型参数——以GARCH(1,1)为例

    本文的知识点 使用excel求解GARCH模型的系数 以GARCH模型为例 主要采用的是极大似然估计法MLE 同时给出了R语言的输出结果作为对照验证 参考了
  • 华硕路由器(RT-AC86U)架设简易git服务器

    背景 我有多台设备 而且不同平台 在多台设备间倒腾代码 直接复制很不方便 于是有了搭一个简易家用级别的git服务器的想法 目的 解决内部不同平台间倒腾代码不方便的问题 家用级轻量解决方案 不需要高功耗服务器 软硬件准备 华硕RT AC86U
  • HDFS入门和应用开发:HDFS简介、发展历史、设计目标以及应用场景

    一 HDFS简介 HDFS Hadoop Distributed File System 是 Apache Hadoop 项目的一个子项目 它的设计初衷是为了能够支持高吞吐和超大文件读写操作 HDFS是一种能够在普通硬件上运行的分布式文件系
  • 刷脸支付不负众望站在了支付舞台的中央

    刷脸支付自宣布商用全面推广以来 便在线下不断释放积极信号 从最初的无人知晓到如今的无人不晓 刷脸支付跨越一个又一个的难关 打破一个又一个外界对它的质疑 承载着希望和荣耀 勇往直前 到了今天 刷脸支付不负众望 站在了支付舞台的中央 不断散发着
  • 微信小程序 SCROLL-VIEW的滚动条设置

    小程序的scroll view用的比较多了 列表页一般也没管它的滚动条 最近突然发现在android与ios中横向滑动的时候表现不一样 不一样在哪呢 ios上直接就不显示啊 也是没谁了 深入想了一下 这滚动条能不能换一颜色或者换个样式 有这
  • python输入一段英文,计算每个单词或数字出现的次数,并以字典方式输出。

    菜农作业 Python GitHub L3 Question22 仅供记录自己在做题时候的一些思考 本题目可以不用字典来完成 只是为了练习字典的使用 题目 Question 22 Level 3 Question Write a progr