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二分查找详解
Sep 13 Python
基础的十进制按位运算总结与在Python中的计算示例
Jun 28 Python
Python实现随机选择元素功能
Sep 14 Python
python实现协同过滤推荐算法完整代码示例
Dec 15 Python
Python学习笔记基本数据结构之序列类型list tuple range用法分析
Jun 08 Python
在Qt中正确的设置窗体的背景图片的几种方法总结
Jun 19 Python
Python使用type关键字创建类步骤详解
Jul 23 Python
PYTHON绘制雷达图代码实例
Oct 15 Python
使用Python实现Wake On Lan远程开机功能
Jan 22 Python
python实现从ftp服务器下载文件
Mar 03 Python
Python实现进度条和时间预估的示例代码
Jun 02 Python
PyMongo 查询数据的实现
Jun 28 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
解析Win7 XAMPP apache无法启动的问题
2013/06/26 PHP
php json与xml序列化/反序列化
2013/10/28 PHP
ThinkPHP3.1的Widget新用法
2014/06/19 PHP
php实现图片添加描边字和马赛克的方法
2014/12/10 PHP
PHP 数组基本操作小结(推荐)
2016/06/13 PHP
php面向对象程序设计入门教程
2019/06/22 PHP
完美解决JS中汉字显示乱码问题(已解决)
2006/12/27 Javascript
css图片自适应大小
2007/11/28 Javascript
javascript 模式设计之工厂模式详细说明
2010/05/10 Javascript
javascript跑马灯悬停放大效果实现代码
2012/12/12 Javascript
使用jquery mobile做幻灯播放效果实现步骤
2013/01/04 Javascript
图片上传判断及预览脚本的效果实例
2013/08/07 Javascript
Jquery chosen动态设置值实例介绍
2013/08/08 Javascript
jQuery实现提示密码强度的代码
2015/07/15 Javascript
JS模拟按钮点击功能的方法
2015/12/22 Javascript
jQuery+Ajax实现限制查询间隔的方法
2016/06/07 Javascript
HTML页面,测试JS对C函数的调用简单实例
2016/08/09 Javascript
jQuery使用deferreds串行多个ajax请求
2016/08/22 Javascript
jquery.Callbacks的实现详解
2016/11/30 Javascript
浅析javascript中的Event事件
2016/12/09 Javascript
JS中使用 after 伪类清除浮动实例
2017/03/01 Javascript
BootStrap 表单控件之单选按钮水平排列
2017/05/23 Javascript
JavaScript原生实现观察者模式的示例
2017/12/15 Javascript
vue-cli项目中使用Mockjs详解
2018/05/14 Javascript
vue总线机制(bus)知识点详解
2020/05/10 Javascript
Vue实现手机计算器
2020/08/17 Javascript
[01:28:56]2014 DOTA2华西杯精英邀请赛 5 24 CIS VS DK
2014/05/26 DOTA
python实现kMeans算法
2017/12/21 Python
django的ORM操作 删除和编辑实现详解
2019/07/24 Python
Python连接SQLite数据库并进行增册改查操作方法详解
2020/02/18 Python
python中如何打包用户自定义模块
2020/09/23 Python
医学院学生的自我评价分享
2013/11/19 职场文书
医院我们的节日活动实施方案
2014/08/22 职场文书
二年级数学教学反思
2016/02/16 职场文书
Node实现搜索框进行模糊查询
2021/06/28 Javascript
Java 超详细讲解数据结构中的堆的应用
2022/04/02 Java/Android