python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配


Posted in Python onFebruary 29, 2020

已知一个元素,在一个list中找出相似的元素

使用场景:

已知一个其它来源的字符串, 它有可能是不完全与我数据库中相应的字符串匹配的,因此,我需要将其转为适合我数据库中的字符串

使用场景太绕了, 直接举例来说吧

随便举例:

按青岛城市的城区来说,

我数据库中存储的城区是个list:['市北区', '市南区', '莱州市', '四方区']等

从其它的数据来源得到一个城区是:市北

我怎么得到与市北相似相近的市北区

解决方案:

In [1]: import difflib

In [2]: cityarea_list = ['市北区', '市南区', '莱州市', '四方区']
# 正常情况下,我是这么用的
In [3]: a = difflib.get_close_matches('市北',cityarea_list,1, cutoff=0.7)

In [4]: a
Out[4]: ['市北区']
# 测试关键字改为市区,且要求返回相似度最高的两个元素
In [5]: a = difflib.get_close_matches('市区',cityarea_list,2, cutoff=0.7)

In [6]: a
Out[6]: ['市南区', '市北区']
# 测试关键字改为市区, 要求返回相似度最高的一个元素
In [7]: a = difflib.get_close_matches('市区',cityarea_list,1, cutoff=0.7)

In [8]: a
Out[8]: ['市南区']

详解:

difflib是python 自带的一个方法

返回的结果是个list

返回的list元素数量是可控的,

cutoff参数是0到1的浮点数, 可以调试模糊匹配的精度,一般为0.6就可以了, 1为精确匹配,

补充拓展:python列表进行模糊查询

先看一下代码

a=['时间1', '时间2', '时间3', 'ab','asds']
dd = [i for i,x in enumerate(a) if x.find('s')!=-1]
print(dd)

需要注意的是这个方法只适合与都是字符串的,因为find是字符串重的方法, 如果list中有数字和None,都是不行的

以上这篇python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
布同 统计英文单词的个数的python代码
Mar 13 Python
Python中logging模块的用法实例
Sep 29 Python
Python使用shelve模块实现简单数据存储的方法
May 20 Python
Python箱型图绘制与特征值获取过程解析
Oct 22 Python
python框架django项目部署相关知识详解
Nov 04 Python
python线程定时器Timer实现原理解析
Nov 30 Python
PyPDF2读取PDF文件内容保存到本地TXT实例
May 12 Python
python os模块在系统管理中的应用
Jun 22 Python
python爬虫使用正则爬取网站的实现
Aug 03 Python
如何在pycharm中安装第三方包
Oct 27 Python
python3.8.3安装教程及环境配置的详细教程(64-bit)
Nov 28 Python
使用Django实现商城验证码模块的方法
Jun 01 Python
在python3中实现查找数组中最接近与某值的元素操作
Feb 29 #Python
python pandas移动窗口函数rolling的用法
Feb 29 #Python
基于Python fminunc 的替代方法
Feb 29 #Python
浅谈SciPy中的optimize.minimize实现受限优化问题
Feb 29 #Python
使用python求解二次规划的问题
Feb 29 #Python
Python龙贝格法求积分实例
Feb 29 #Python
python计算导数并绘图的实例
Feb 29 #Python
You might like
PHP5 面向对象程序设计
2008/02/13 PHP
php实现猴子选大王问题算法实例
2015/04/20 PHP
基于PHP给大家讲解防刷票的一些技巧
2015/11/18 PHP
PHP 读取文本文件内容并分页显示
2016/01/02 PHP
PHP一个简单的无需刷新爬虫
2019/01/05 PHP
PHP simplexml_import_dom()函数讲解
2019/02/03 PHP
Javascript string 扩展库代码
2010/04/09 Javascript
js实现滑动触屏事件监听的方法
2015/05/05 Javascript
基于jQuery和CSS3制作数字时钟附源码下载(jquery篇)
2015/11/24 Javascript
通过设置CSS中的position属性来固定层的位置
2015/12/14 Javascript
jQuery弹出div层过2秒自动消失
2016/11/29 Javascript
利用Javascript实现简单的转盘抽奖
2017/02/13 Javascript
jQuery实现jQuery-form.js实现异步上传文件
2017/04/28 jQuery
vue获取dom元素注意事项
2017/12/28 Javascript
vue 1.0 结合animate.css定义动画效果
2018/07/11 Javascript
JS监听事件的叠加和移除功能
2018/11/19 Javascript
详解nuxt路由鉴权(express模板)
2018/11/21 Javascript
nodejs 使用http进行post或get请求的实例(携带cookie)
2019/01/03 NodeJs
浅谈对于“不用setInterval,用setTimeout”的理解
2019/08/28 Javascript
详解vite2.0配置学习(typescript版本)
2021/02/25 Javascript
[34:39]Secret vs VG 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
Python3导入自定义模块的三种方法详解
2018/04/13 Python
Python实现简单的用户交互方法详解
2018/09/25 Python
python实现微信机器人: 登录微信、消息接收、自动回复功能
2019/04/29 Python
vscode 配置 python3开发环境的方法
2019/09/19 Python
Python 2种方法求某个范围内的所有素数(质数)
2020/01/31 Python
pyqt5数据库使用详细教程(打包解决方案)
2020/03/25 Python
jupyter notebook实现显示行号
2020/04/13 Python
美国艺术和工艺品商店:Hobby Lobby
2020/12/09 全球购物
幼师自荐信范文
2013/10/06 职场文书
法律工作求职自荐信
2013/10/31 职场文书
党员一句话承诺大全
2014/03/28 职场文书
爱护公共设施标语
2014/06/24 职场文书
公路施工安全责任书
2015/05/08 职场文书
导游词之无锡梅园
2019/11/28 职场文书
只用50行Python代码爬取网络美女高清图片
2021/06/02 Python