从collections库的Counter类看items()方法和enumerate()方法

下面的代码是针对文件的词频统计,使用了collections库及其Counter类
import collections
def count_word_frequency(text):
    words = text.lower().split()
    word_counts = collections.Counter(words)
    return word_counts
def count_fileword_frequency(file_path):
    with open(file_path,'r') as file:
        text = file.read()
    words = text.lower().split()
    word_counts = collections.Counter(words)
    return word_counts
一个参数是字符串,一个参数是文件路径,一共定义了两个方法

对变量赋值
text = "This is a sample text.This text is used to domonstrate word frequency counting."
file_path = './subtitle.txt'

输出返回值类型
word_frequency = count_word_frequency(text)
print(type(word_frequency))
word_frequency = count_fileword_frequency('./subtitle.txt')
print(type(word_frequency))

输出结果为
<class 'collections.Counter'>
<class 'collections.Counter'>
类型是一个类

如何输出内容,分别用 items() 和 enumerate() 实现
使用 items()
for key,value in word_frequency.items():
    print(key,value)
结果为
make 2
sure 1
you 36
know 9
what 11
you're 7
supposed 1
使用enumerate()
for key,value in enumerate(word_frequency):
    print(key,value,word_frequency[value])
结果为
0 make 2
1 sure 1
2 you 36
3 know 9
4 what 11
5 you're 7
6 supposed 1

如果要求输出前三项,使items()时,需要先转换成list
for key,value in list(word_frequency.items())[:3]:
    print(key,value)
    
输出为
make 2
sure 1
you 36
使用enumerate()时,代码如下
for key,value in enumerate(word_frequency):
    if key in [0,1,2]:
        print(value,word_frequency[value])
输出同样为  
make 2
sure 1
you 36      

从代码中,可以items() 和 enumerate() 都可用可迭代对象的遍历,items()返回元素本身,enumerate()返回迭代对象,有索引和元素组成
    
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/80452.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows开机密码破解

Windows11以及Windows10(21H2)以上版本 先开机&#xff0c;不进行任何操作&#xff0c;静静的等待登录界面 按住Shift重启 进入“选择一个选项”界面&#xff0c;点击疑难解答 点击高级选项 点击命令提示符 输入两行命令 copy C:\windows\system32\uti1man.exe C: \Window…

spark 精华总结

面试题&#xff1a; Hadoop 的基于进程的计算和 Spark 基于线程方式优缺点&#xff1f; 答案&#xff1a; Hadoop中的MR中每个map/reduce task都是一个java进程方式运行&#xff0c;好处在于进程之间是互相独立的&#xff0c;每个task独享进程资源&#xff0c;没 有互相干扰&…

vue2.0 elementui 封装表单

1.封装表单 <template><div><el-form :model="numberValidateForm" ref="numberValidateForm" label-width="80px" :disabled="type===click"><div v-for="item in formConfig" :key="item.id&q…

YOLO物体检测-系列教程6:YOLOV3源码解读4之 YOLO层

&#x1f388;&#x1f388;&#x1f388;YOLO 系列教程 总目录 上篇内容&#xff1a; YOLOV3项目实战1之 整体介绍与数据处理 YOLOV3提出论文&#xff1a;《Yolov3: An incremental improvement》 6、yolo层 6.1 yolo层 class YOLOLayer(nn.Module):"""Det…

竞赛 基于机器视觉的银行卡识别系统 - opencv python

1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于深度学习的银行卡识别算法设计 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f9ff; 更多资料, 项目分享&#xff1a; https://gitee.com/dancheng…

Vue知识系列(7)每天10个小知识点

目录 系列文章目录Vue知识系列&#xff08;1&#xff09;每天10个小知识点Vue知识系列&#xff08;2&#xff09;每天10个小知识点Vue知识系列&#xff08;3&#xff09;每天10个小知识点Vue知识系列&#xff08;4&#xff09;每天10个小知识点Vue知识系列&#xff08;5&#x…

Android 格式化存储之Formatter

格式化存储相关的数值时&#xff0c;可以用 android.text.format.Formatter 。 Formatter.formatFileSize(Context context, long sizeBytes) 源码说明&#xff0c;在 Android O 后&#xff0c;存储单位的进制是 1000 &#xff0c;Android N 之前单位进制是 1024 。 /*** Fo…

【ARM Coresight 系列文章 21 -- SoC-400 介绍 】

文章目录 1. Coresight SoC-4001.1 DAP 组件1.2 SWJ-DP1.3 DAPBUS互联1.4 AXI-AP1.5 APB-AP2. 互联2.1 APB互联组件2.2 ATB互联组件2.2.1 replicator2.2.2 funnel2.2.3 upsizer2.2.4 downsizer2.2.5 asynchronous bridge2.2.6 synchronous bridge3. Timestamp 组件4. ECT组件&l…

C【动态内存管理】

1. 为什么存在动态内存分配 int val 20;//在栈空间上开辟四个字节 char arr[10] {0};//在栈空间上开辟10个字节的连续空间 2. 动态内存函数的介绍 2.1 malloc&#xff1a;stdlib.h void* malloc (size_t size); int* p (int*)malloc(40); #include <stdlib.h> #incl…

Web服务(Web Service)

简介 Web服务&#xff08;Web Service&#xff09;是一种Web应用开发技术&#xff0c;用XML描述、发布、发现Web服务。它可以跨平台、进行分布式部署。 Web服务包含了一套标准&#xff0c;例如SOAP、WSDL、UDDI&#xff0c;定义了应用程序如何在Web上实现互操作。 Web服务的服…

非对称加密系统和LINUX实践

对称加密和非对称加密 非对称加密: 非对称加密是一种加密技术,它使用一对密钥来进行数据的加密和解密,这一对密钥分别称为公钥(public key)和私钥(private key)。这两个密钥是数学相关的,并且彼此相关,但不能相互推导出来。 以下是非对称加密的基本工作原理: 公钥…

类与对象的创建

package com.mypackage.oop.later;//学生类 //类里面只存在属性和方法 public class Student {//属性&#xff1a;字段//在类里面方法外面定义一个属性&#xff08;或者说是变量&#xff09;&#xff0c;然后在方法里面对他进行不同的实例化String name; //会有一个默认值&…

Android studio 断点调试、日志断点

目录 参考文章参考文章1、运行调试2、调试操作3、断点类型行断点的使用场景属性断点的使用场景异常断点的使用场景方法断点的使用场景条件断点日志断点 4、断点管理区 参考文章 参考文章 1、运行调试 开启 Debug 调试模式有两种方式&#xff1a; Debug Run&#xff1a;直接…

windows下C++的反射功能

概述 c/c如果在日志中查看某个结构体/类的每个变量名&#xff0c;变量值信息&#xff0c;只能通过printf逐个格式化&#xff0c;非常繁琐&#xff0c;如何做到类似protobuff转json的序列化功能呢&#xff1f;该dll库先通过分析pdb文件获取结构体/类的变量名称、变量地址&#…

vue3将页面导出成PDF文件(完美解决图片、表格内容分割问题)

vue3将页面导出成PDF文件&#xff08;完美解决图片、表格内容分割问题&#xff09; 1、安装依赖2、在utils中创建htmlToPDF.js文件3、在vue中引入并使用 1、安装依赖 npm install --save html2canvas // 页面转图片 npm install jspdf --save // 图片转pdf2、在utils中创建h…

数据驱动成功:小程序积分商城的数据分析

在当今数字化时代&#xff0c;数据被认为是企业成功的关键。小程序积分商城是一种流行的营销工具&#xff0c;可帮助企业吸引和留住客户&#xff0c;并提供有关客户行为和偏好的宝贵数据。本文将深入探讨如何通过数据分析实现小程序积分商城的成功&#xff0c;包括数据的收集、…

Linux内核 6.6版本将遏制NVIDIA驱动的不正当行为

Linux 内核开发团队日前宣布&#xff0c;即将发布的 Linux 6.6 版本将增强内核模块机制&#xff0c;以更好地防御 NVIDIA 闭源驱动的不正当行为。 Linux 内核开发团队日前宣布&#xff0c;即将发布的 Linux 6.6 版本将增强内核模块机制&#xff0c;以更好地防御 NVIDIA 闭源驱…

linux shell操作- 02 常用命令及案例

文章目录 常用命令 续 常用命令 续 定时任务 通过文本编辑cron任务&#xff0c;实现定时操作 分 小时 天 月 星期 绝对路径sh or cmd* 表示每个xxx&#xff0c;如每个小时每小时的第三分钟执行cmd-> 03 * * * * /home/lauf/scraw.sh每天的第5、8个小时执行-> 00 5,8 * *…

Golang反射相关知识总结

1. Golang反射概述 Go语言的反射&#xff08;reflection&#xff09;是指在运行时动态地获取类型信息和操作对象的能力。在Go语言中&#xff0c;每个值都是一个接口类型&#xff0c;这个接口类型包含了这个值的类型信息和值的数据&#xff0c;因此&#xff0c;通过反射&#x…

C/C++—Inline关键词

1、引入 inline 关键字的原因 在 c/c 中&#xff0c;为了解决一些频繁调用的小函数大量消耗栈空间&#xff08;栈内存&#xff09;的问题&#xff0c;特别的引入了 inline 修饰符&#xff0c;表示为内联函数。 在系统下&#xff0c;栈空间是有限的&#xff0c;假如频繁大量的…