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实现类似ftp传输文件的网络程序示例
Apr 08 Python
python网络编程示例(客户端与服务端)
Apr 24 Python
Python字符串逐字符或逐词反转方法
May 21 Python
Python实现两个list对应元素相减操作示例
Jun 09 Python
Python函数式编程
Jul 20 Python
flask中使用蓝图将路由分开写在不同文件实例解析
Jan 19 Python
详解Django 时间与时区设置问题
Jul 23 Python
django-rest-swagger的优化使用方法
Aug 29 Python
Pytorch使用MNIST数据集实现基础GAN和DCGAN详解
Jan 10 Python
Django Path转换器自定义及正则代码实例
May 29 Python
Python常用类型转换实现代码实例
Jul 28 Python
教你怎么用PyCharm为同一服务器配置多个python解释器
May 31 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新手谈谈我的学习心得
2007/02/25 PHP
PHP中基本符号及使用方法
2010/03/23 PHP
php中存储用户ID和密码到mysql数据库的方法
2013/02/06 PHP
PHP面向对象教程之自定义类
2014/06/10 PHP
php使用parse_url和parse_str解析URL
2015/02/22 PHP
FireFox与IE 下js兼容触发click事件的代码
2008/11/20 Javascript
JavaScript 验证浏览器是否支持javascript的方法小结
2009/05/17 Javascript
jQuery布局插件UI Layout简介及使用方法
2013/04/03 Javascript
jquery 文本上下无缝滚动,鼠标放上去就停止 小例子
2013/06/05 Javascript
Javascript中indexOf()和lastIndexOf应用方法实例
2016/08/24 Javascript
jQuery在ie6下无法设置select选中的解决方法详解
2016/09/20 Javascript
jquery心形点赞关注效果的简单实现
2016/11/14 Javascript
微信小程序-小说阅读小程序实例(demo)
2017/01/12 Javascript
微信小程序 配置顶部导航条标题颜色的实现方法
2017/09/20 Javascript
JavaScript监听触摸事件代码实例
2019/12/30 Javascript
小程序websocket心跳库(websocket-heartbeat-miniprogram)
2020/02/23 Javascript
学习python处理python编码问题
2011/03/13 Python
Python调用微信公众平台接口操作示例
2017/07/08 Python
Python编程实现控制cmd命令行显示颜色的方法示例
2017/08/14 Python
神经网络python源码分享
2017/12/15 Python
python3处理含有中文的url方法
2018/05/10 Python
对pandas中to_dict的用法详解
2018/06/05 Python
Django缓存系统实现过程解析
2019/08/02 Python
CSS改变网页中鼠标选中文字背景颜色例子
2014/04/23 HTML / CSS
施华洛世奇中国官网:SWAROVSKI中国
2020/06/16 全球购物
this关键字的含义
2015/04/08 面试题
Linux如何为某个操作添加别名
2013/03/01 面试题
中学生班主任评语
2014/01/30 职场文书
商学院大学生求职的自我评价
2014/03/12 职场文书
2014机关党员干部“正风肃纪”思想汇报
2014/09/15 职场文书
党的群众路线教育实践活动个人整改方案
2014/10/25 职场文书
邀请函的格式
2015/01/30 职场文书
《秋思》教学反思
2016/02/23 职场文书
2017年大学生寒假社会实践活动总结
2016/04/06 职场文书
python实现自定义日志的具体方法
2021/05/28 Python
python图片灰度化处理的几种方法
2021/06/23 Python