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实现的希尔排序算法实例
Jul 01 Python
深入理解Python3中的http.client模块
Mar 29 Python
Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息示例
Aug 21 Python
Python实现的堆排序算法示例
Apr 29 Python
Python实现多条件筛选目标数据功能【测试可用】
Jun 13 Python
Python Pillow Image Invert
Jan 22 Python
Python匿名函数/排序函数/过滤函数/映射函数/递归/二分法
Jun 05 Python
在Python3 numpy中mean和average的区别详解
Aug 24 Python
Django 自动生成api接口文档教程
Nov 19 Python
Python如何基于selenium实现自动登录博客园
Dec 16 Python
django ajax发送post请求的两种方法
Jan 05 Python
python字典key不能是可以是啥类型
Aug 04 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
PHP也可以?成Shell Script
2006/10/09 PHP
浅析HTTP消息头网页缓存控制以及header常用指令介绍
2013/06/28 PHP
php实现按照权重随机排序数据的方法
2015/01/09 PHP
PHP程序中的文件锁、互斥锁、读写锁使用技巧解析
2016/03/21 PHP
PHP  实现等比压缩图片尺寸和大小实例代码
2016/10/08 PHP
PHP发送邮件确认验证注册功能示例【修改别人邮件类】
2019/11/09 PHP
图片连续滚动代码[兼容IE/firefox]
2009/06/11 Javascript
javascript深入理解js闭包
2010/07/03 Javascript
javascript使用activex控件的代码
2011/01/27 Javascript
jQuery 和 CSS 的文本特效插件集锦
2014/12/12 Javascript
JavaScript实现16进制颜色值转RGB的方法
2015/02/09 Javascript
详解AngularJS中的作用域
2015/06/17 Javascript
详细分析JavaScript变量类型
2015/07/08 Javascript
jquery 中toggle的2种用法详解(推荐)
2016/09/02 Javascript
微信小程序 slider 详解及实例代码
2017/01/10 Javascript
express启用https使用小记
2019/05/21 Javascript
Python输出PowerPoint(ppt)文件中全部文字信息的方法
2015/04/28 Python
Python字符编码判断方法分析
2016/07/01 Python
python中获得当前目录和上级目录的实现方法
2017/10/12 Python
Python enumerate索引迭代代码解析
2018/01/19 Python
Python实现合并同一个文件夹下所有txt文件的方法示例
2018/04/26 Python
python3使用smtplib实现发送邮件功能
2018/05/22 Python
简单了解python PEP的一些知识
2019/07/13 Python
Python字典推导式将cookie字符串转化为字典解析
2019/08/10 Python
python getopt模块使用实例解析
2019/12/18 Python
python构造函数init实例方法解析
2020/01/19 Python
python3+opencv生成不规则黑白mask实例
2020/02/19 Python
Python常驻任务实现接收外界参数代码解析
2020/07/21 Python
浅谈Html5中视频 音频标签 进度条的问题
2016/07/26 HTML / CSS
写一个用矩形法求定积分的通用函数
2012/11/08 面试题
拓展培训心得体会
2014/01/04 职场文书
小学语文课后反思精选
2014/04/25 职场文书
工商干部先进事迹
2014/05/14 职场文书
行政专员岗位职责说明书
2014/07/30 职场文书
html form表单基础入门案例讲解
2021/07/15 HTML / CSS
使用refresh_token实现无感刷新页面
2022/04/26 Javascript