牛逼,Python3竟然内置找茬神器!一起来找茬吧!

封校大学生在宿舍无聊玩起图像大找茬——一个关于游戏的练手小项目(一起领略Python脚本的风采吧) 原图: 灰度图使用skimage库可以轻松解决,同时安装以显示图片。 扩展:用到了SSIM原理,也可以叫他结构相似性指数,是一种衡量两幅图像相似度的指标。 但是需要注意的是 SSIM返回的ndarray里面的值为[0, 1]的float型,而OpenCV的[0, 255]为uint8型,用如下转换: grad对应图片:然后用cv2中图像阈值处理函数去寻找轮廓,然后用返回cnts中的countors(轮廓),然后用获取边界框位置,直接用画出方框 函数寻找到的轮廓: 最后打印图片保存即可。 源码: 抓取句柄图 阅读详情
点上方“菜鸟编程大本营”,选择“星标”
原创干货,第一时间送达

对于“大家来找茬”这个游戏而言,小伙伴们肯定不会陌生,找茬游戏对于大家的耐心和细心是一个非常大的考验。对于python程序来说,也会遇到类似于找茬游戏的问题。例如寻找两个列表中不同的元素内容。

好在python3中存在一个内置库,来帮助我们解决该类问题,今天,小编就为大家介绍这个小巧但是却十分好用的python3内置库——difflib 。

01.difflib 库介绍

difflib 库是python3的一个内置库,因此大家不需要通过pip来进行安装,直接就可以在程序中调用difflib 库,并进行使用。


02.difflib 的使用

那么difflib库有哪些方面的应用呢?我们通过以下的四个实际应用中常见的问题进行展开。

  • 寻找两个列表中不同的元素

  • 准确指示元素间的差异

  • 进行准确度的匹配

  • 字符串转换

1).寻找两个列表中不同的元素

在实际的应用中,经常会遇到找到两个列表中不同的元素,如果列表元素少的话,我们可以通过人工的方式进行筛查,但是如果元素较多,我们可以通过下图的程序进行筛查。

上图程序中,通过两个for循环来筛查两个列表中的元素,互相筛查出来两个列表中的不同元素内容。difflib 可以利用一行程序来实现上述的功能,并且在结果的输出中更加美观。

程序通过调用difflib 库的context_diff函数,一行代码便可以给两个列表进行“找茬”处理。在结果的展示中,可以看到,context_diff函数输出的结果更加的清晰明确,***1,5***中,1和5表示的是传入第一个列表中的元素而在第二个列表中不存在。

同时在元素前面利用叹号进行标定。无论从程序的编写还是结果的展示方面,difflib 库都给出了很好的解答。

2).准确指示元素间的差异

前面的操作还只是简单的筛查出来,不同列表之间元素的区别,difflib 还能够更进一步,直接找到不同元素之间的差异性,如下图所示:

上图中,通过ndiff函数来寻找两个列表中,不同英文单词的细节差异,输出结果中,-号表示的是在第一个列表中存在,但是在第二个列表中没有的元素,+号表示在第一个列表中不存在,但是在第二个列表中存在的元素。

对比peak和peek,可以发现,第三个元素是不相同的,因此在结果中通过^号来指出存在差异的字母位置。

3).进行准确度的匹配

让我们更进一步的来对difflib 库进行探索,利用准确度匹配的方式来寻找最接近的单词。在日常的程序编写过程中,大家可能会将main不小心的写为mian。利用difflib 库中的get_close_matches函数,可以纠正这样的错误输入,如下图所示:

上述程序中,通过get_close_matches函数,可以匹配得到与mian最为接近的单词是main。get_close_matches函数中给出的cutoff参数,控制着匹配的严格程度,它的值介于0到1之间,cutoff的值越大,表示匹配程度越严格,如果设置为1时,则必须单词完全一致才能匹配,否则就会返回空列表。利用get_close_matches函数,可以完成单词之间相似度的匹配。

4).字符串转换

无论在实际的应用,抑或是笔试算法的考察中,都会遇到一类问题,就是字符串的转换问题,例如,如何将字符串“welcome to python program"转换成”welcome to follow python subscription“。利用difflib库中的SequenceMatcher类,就可以完成字符串的转换。

上图的程序中,通过调用SequenceMatcher类来完成将字符串str1转换成str2的过程,其中action对应的是对于str1的操作动作,equal表示两个字符串相同,不用改变,insert表示在str1中进行插入,replace表示字符串的替换,位置表示需要改变的字符串的位置。按照输出结果的指示进行操作,就可以将str1转换为str2。

03.总结

以上内容就是小编今天为大家带来的关于difflib 库的内容分享,在日常的学习中,difflib库可以帮助我们快速的进行列表内容的查重,单词的更改和替换。

提升开发效率,大家可以按照上面的内容,更加深入的学习difflib库的内容。

欢迎大家在留言区吱一声,觉得今天的分享内容有用的话,记得给个三连哦!

推荐阅读:入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影年度爆款文案1).卧槽!Pdf转Word用Python轻松搞定!2).学Python真香!我用100行代码做了个网站,帮人PS旅行图片,赚个鸡腿吃3).首播过亿,火爆全网,我分析了《乘风破浪的姐姐》,发现了这些秘密 4).80行代码!用Python做一个哆来A梦分身 5).你必须掌握的20个python代码,短小精悍,用处无穷 6).30个Python奇淫技巧集 7).我总结的80页《菜鸟学Python精选干货.pdf》,都是干货 8).再见Python!我要学Go了!2500字深度分析!9).发现一个舔狗福利!这个Python爬虫神器太爽了,自动下载妹子图片点阅读原文,领廖雪峰大佬的资料包!
射频工程师笔记---射频通信基础 回顾一下移动通信技术的发展,其实是互联网和通信技术的融合过程。在这个过程中,很多应用都在不断加入其中。比如计算机跟通信的融合产生了互联网、互联网跟手机的融合带来了移动互联网。手机可以看杂志、看视频、听音乐,于是又出现了内容服务产业;再后来,电视音箱等设备也能联网,于是网络跟家电又产生了融合。所以应用的出现总是在融合其他产业。在1995年,比尔·盖茨在《未来之路》一书中首次提出:在未来... 阅读详情

相关推荐

深入浅出横向联邦学习、纵向联邦学习、联邦迁移学习

深入浅出解析横向联邦学习(Horizontal Federated Learning)、纵向联邦学习(Vertical Federated Learning)和联邦迁移学习(Federated Transfer Learning)有多个机构(比如几家不同的银行,或者几家医院)都拥有一些数据,他们希望联合起来训练一个更强大的机器学习模型,但出于隐私保护或法规要求,他们不能直接把数据共享出来。联邦学习就是为了解决这个问题而提出的。它的核心思想是“数据不动模型动”,即数据保留在本地,参与方共同训练模型。

frostmelody 全网同名,大家多多关注呀~ 持续分享优质内容! 2464

python3标准库difflib

参考于标准库,关于difflib详细说明可以查看标准库 difflib中文说明文档 difflib模块有什么用? 可以比较序列之间的差异,然后返回增量信息,增量信息前面符号说明 符号 意义 ‘-’ 序列1独有 ‘+’ 序列2独有 ‘ ‘ 两个序列都有 ‘?’ 行不在任一输入序列 difflib提供的用于比较的API 函数的a,b参数均为接收字符串列表如[‘a’,‘b’,‘c’,‘d’],如果是文件可以f.readlines()直接获得字符串列表 作用都为比较a,b两个序.

qq_41600708的博客 1752

PacketTacer烟雾传感器读数为0的解决方法

PacketTacer烟雾传感器读数为0的解决方法

ChloeMax_的博客 1905

Difflib —— 有趣的 Python 库

difflib是 Python 标准库的一部分,无需额外安装即可使用。这个库由多个部分组成,主要提供了用于比较序列之间的差异和相似度计算的类和函数。它可以用来比较文件、字符串等,并可以生成差异结果的多种报告,这样我们便可以直观地看到不同之处。由于difflib是随 Python 标准发行版自带的,它支持几乎所有主流的 Python3 版本。虽然这个库可能不像其它第三方库(如 git 中的 diff)那样名声显赫,但在处理文本比对、合并等问题时,difflib是一个相当有用且强大的工具。

m0_59236602的博客 3223

人工智能AI在软件测试和质量效能中的实际应用

人工智能在软件测试中应用,介绍chatGPT在测试中的应用,还有多个AI驱动的测试工具。

lindafang72的博客 1万+

ArcGIS拓扑检查实战:5分钟搞定面重叠与缝隙问题(附详细截图)

本文详细介绍了如何使用ArcGIS进行拓扑检查,快速解决面重叠与缝隙问题。通过搭建拓扑检查环境、配置拓扑规则、五步闪电修复法及批量处理技巧,帮助用户高效完成数据修正,提升GIS数据质量。特别适合地籍管理、规划红线等场景应用。

z4a5b6的博客 744

Python 3 自动化运维之比较字符串差异difflib模块

#1.控制台打印输出 #字符串差异比较 import difflib s1 = """text1: 我是第一个字符串。 我用Python! and so on. """ #以行进行分割 s1_lines = s1.splitlines() s2 = """text2: 我是第二个字符串。 我用python。 and so on.""" s2_lines = s2.splitlin

筑梦之路 2538

【从0到1实战】C# WinForm开发工业级PLC监控系统(完整串口+Modbus RTU/TCP+数据库存储+源码+避坑指南)

做C#工控上位机开发的工程师,尤其是刚入行的新人,最核心的刚需就是开发一套完整的PLC监控系统。这也是工控领域最基础、最核心、应用最广的项目类型——小到单台PLC的设备测控,大到整线的产线监控,本质都是「上位机与PLC通讯,实现数据采集、参数下发、状态监控、数据存储」。碎片化的知识点学了很多,串口会用了、Modbus协议看了、数据库也懂点,但是始终无法把这些知识点串联起来,做出一套能落地的工业级PLC监控系统。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1560

python3从零学习-5.1.4、对比模块Difflib

此模块提供用于比较序列的类和函数。 例如,它可以用于比较文件,并可以产生各种格式的不同信息,包括 HTML 和上下文以及统一格式的差异点。 有关目录和文件的比较,请参见filecmp模块。 classdifflib.SequenceMatcher 这是一个灵活的类,可用于比较任何类型的序列对,只要序列元素为hashable对象。 其基本算法要早于由 Ratcliff 和 Obersh...

山海皆可平z 807

openbmc 支持mctp over pcie(三)(支持作为endpoint)

本文介绍了在Intel BHS平台上支持MCTP over PCIe端点开发的调试方法。开发基于CodeConstruct和AspeedTech-BMC的开源项目,将内核驱动改为模块形式以便调试。内容包括DTS配置、驱动模块设置步骤,以及如何将BMC配置为端点设备。调试过程涉及内核模块加载、MCTPD启动、参数设置等关键命令,并展示了路由表、地址和邻居信息的测试结果。该方案仅为实验性工作,需注意停止其他使用/dev/aspeed-mctp0接口的应用。

wit_yuan的专栏 1557

简谈基于FPGA的千兆以太网设计

简谈基于FPGA的千兆以太网设计 今天给大侠带来简谈基于FPGA的千兆以太网设计,话不多说,上货。 今天我们来简单的聊一聊以太网,以太网在FPGA学习中属于比较高级的内容了,有些大侠肯定会感觉以太网学习起来非常不容易。其实,我可以告诉大家,前期学习的基础打扎实了,后期的学习也没那么难。总之就是说难没那么难,说容易也不是那么容易。那么,言归正传,下面让我们一起来聊一聊以太网的学习。 说起以太网,大家可能就会想到百兆以太网、千兆以太网以及万兆以太网等等。局域以太网从10M开始发展,经历几多的变迁,发展到现

3620

牛逼,Python3竟然内置找茬神器!一起来找茬吧

对于“大家来找茬”这个游戏而言,小伙伴们肯定不会陌生,找茬游戏对于大家的耐心和细心是一个非常大的考验。对于python程序来说,也会遇到类似于找茬游戏的问题。例如寻找两个列表中不同的元素内容。 好在python3中存在一个内置库,来帮助我们解决该类问题,今天,小编就为大家介绍这个小巧但是却十分好用的python3内置库——difflib 。 01.difflib 库介绍 difflib 库是python3的一个内置库,因此大家不需要通过pip来进行安装,直接就可以在程序中调用difflib .

m0_55479420的博客 588

我的AI个人公司成立:基于Skills与Qwen大模型的智能问答平台实战开发+龙虾团队

微学AI推出数字员工矩阵,包含10个核心AI角色(总经理、秘书、工程师等),每个角色具备专属技能模块。系统采用FastAPI+Vue3技术栈,核心功能包括:基于SkillLoader的动态技能管理(支持脚本执行和文档加载)、WebSocket流式输出、多轮对话上下文管理。通过模块化架构实现AI自驱协作,可自主完成从需求分析到开发落地的全流程。项目亮点在于声明式技能配置和实时交互能力,打破传统办公壁垒,提升工作效率。

微学AI的博客 1625

python代码-牛逼啊!一个随时随地写Python代码的神器

原标题:牛逼啊!一个随时随地写Python代码的神器现在学Python的人越来越多,很多小伙伴都非常有激情,尤其是我们的实战小密圈的近300个小伙伴。利用碎片时间随时随地学习Python, 大家知道Python是一门编程语言,但是学语言光看不练是没有用的。最好能编程并运行,有没有什么好的神器可以随时编写代码,而且功能还蛮强大,有的,我今天就推荐一个IOS手机上能写Python代码的App 叫Pyt...

q6q6q的专栏 1049

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

牛逼啊!一个随时随地写Python代码的神器

我是老曾(个人微信:python060)建了个微信群,每周定期分享精选电子书,带大家白嫖各种福利,有需要的同学可以加我微信进群。名额有限,先到先得。手机屏幕太少,写代码不方便,建议...

bigzql的博客 6455

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Python史上最牛逼的可视化神器

数据分析离不开数据可视化。比如我们前面介绍过pandas画图,matplotlib画图,pyecharts画图当然还有Tableau,今天推荐一款更牛的可视化神器,主要是这款神器的画出来的图很漂亮,色彩太酷了。   神器Plotly   Plotly 是一款用来做数据分析和可视化的在线平台,功能非常强大,可以在线绘制很多图形比如条形图、散点图、饼图、直方图等等。而且还是支持在线编辑,以及多...

zhusongziye的博客 1万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

python代码格式化神器_牛逼啊!一个随时随地写Python代码的神器

现在学Python的人越来越多,很多小伙伴都非常有激情,利用碎片时间随时随地学习Python, 大家知道Python是一门编程语言,但是学语言光看不练是没有用的。最好能编程并运行,有没有什么好的神器可以随时编写代码,而且功能还蛮强大,有的,我今天就推荐一个IOS手机上能写Python代码的App 叫Pythonista.强大的Pythonista1.功能强大有一些小程序也是可以运行Python但是...

weixin_39850699的博客 223

牛逼的python代码_牛逼啊!一个随时随地写Python代码的神器

现在学Python的人越来越多,很多小伙伴都非常有激情,利用碎片时间随时随地学习Python, 大家知道Python是一门编程语言,但是学语言光看不练是没有用的。最好能编程并运行,有没有什么好的神器可以随时编写代码,而且功能还蛮强大,有的,我今天就推荐一个IOS手机上能写Python代码的App 叫Pythonista.强大的Pythonista1.功能强大有一些小程序也是可以运行Python但是...

weixin_39849888的博客 943

python神器_牛逼啊!一个可以随时随地写Python代码的神器

现在学Python的人越来越多,很多小伙伴都非常有激情。利用碎片时间随时随地学习Python, 大家知道Python是一门编程语言,但是学语言光看不练是没有用的。最好能编程并运行,有没有什么好的神器可以随时编写代码,而且功能还蛮强大,有的,我今天就推荐一个IOS手机上能写Python代码的App 叫Pythonista.强大的Pythonista1.功能强大有一些小程序也是可以运行Python但是...

weixin_39607937的博客 276

python数据分析神器_牛逼啊!一个随时随地写Python代码的神器

作者: Leoxin公众号:菜鸟学Python现在学Python的人越来越多,很多小伙伴都非常有激情。利用碎片时间随时随地学习Python, 大家知道Python是一门编程语言,但是学语言光看不练是没有用的。最好能编程并运行,有没有什么好的神器可以随时编写代码,而且功能还蛮强大,有的,我今天就推荐一个IOS手机上能写Python代码的App 叫Pythonista.强大的Pythonista1....

weixin_39943992的博客 142

牛逼的python代码_超级牛逼的Python环境搭建以及神器推荐!

今天给大家讲一下如何搭建一个舒适的 Python 环境,包括本地环境和远程调试环境,然后再附送给大家两套好用的 Python Web 框架。在这个过程中,还穿插着介绍一些适合于初学者的神器,希望大家中意~1 安装 Python第一步,当然是安装 Python 啦。1.1 Mac 系统Mac 系统默认是安装了 Python2.7 的。我们如何另外安装一个 Python3 呢?首先,推荐你安装神器 H...

weixin_39565300的博客 891

一个随时写python代码的神器_牛逼啊!一个随时随地写Python代码的神器

现在学Python的人越来越多,很多小伙伴都非常有激情,利用碎片时间随时随地学习Python, 大家知道Python是一门编程语言,但是学语言光看不练是没有用的。最好能编程并运行,有没有什么好的神器可以随时编写代码,而且功能还蛮强大,有的,我今天就推荐一个IOS手机上能写Python代码的App 叫Pythonista.强大的Pythonista1.功能强大有一些小程序也是可以运行Python但是...

weixin_39600331的博客 188

python可以写程序吗_牛逼啊!一个可以随时随地写Python代码的神器

现在学Python的人越来越多,很多小伙伴都非常有激情。利用碎片时间随时随地学习Python, 大家知道Python是一门编程语言,但是学语言光看不练是没有用的。最好能编程并运行,有没有什么好的神器可以随时编写代码,而且功能还蛮强大,有的,我今天就推荐一个IOS手机上能写Python代码的App 叫Pythonista.强大的Pythonista1.功能强大有一些小程序也是可以运行Python但是...

weixin_39917811的博客 280
上一篇: Github 又现神器!累计star超过11.5K,这个OCR神器开源啦!
下一篇: Python杀死了Excel ?
菜鸟学Python
博客等级 码龄9年 8063粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值