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的Flask框架中实现全文搜索功能
Apr 20 Python
详解Django中Request对象的相关用法
Jul 17 Python
Python和C/C++交互的几种方法总结
May 11 Python
浅谈Django REST Framework限速
Dec 12 Python
Python json模块dumps、loads操作示例
Sep 06 Python
python  Django中的apps.py的目的是什么
Oct 15 Python
在Python中将函数作为另一个函数的参数传入并调用的方法
Jan 22 Python
Python实现删除排序数组中重复项的两种方法示例
Jan 31 Python
Python中super函数用法实例分析
Mar 18 Python
Python如何重新加载模块
Jul 29 Python
python实现粒子群算法
Oct 15 Python
python创建字典及相关管理操作
Apr 13 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修改文件上传限制方法汇总
2015/04/07 PHP
laravel框架模板之公共模板、继承、包含实现方法分析
2019/08/30 PHP
浅析PHP中json_encode与json_decode的区别
2020/07/15 PHP
javascript 必知必会之closure
2009/09/21 Javascript
js实现的类似于asp数据字典的数据类型代码实例
2014/09/03 Javascript
jQuery控制div实现随滚动条滚动效果
2016/06/07 Javascript
BootStrap 弹出层代码
2017/02/09 Javascript
javascript cookie的基本操作(添加和删除)
2017/07/24 Javascript
vue父组件向子组件动态传值的两种方法
2017/11/11 Javascript
Vue使用鼠标在Canvas上绘制矩形
2020/12/24 Vue.js
ES6的循环与可迭代对象示例详解
2021/01/31 Javascript
[46:44]VG vs TNC Supermajor小组赛B组败者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
python 域名分析工具实现代码
2009/07/15 Python
python脚本实现分析dns日志并对受访域名排行
2014/09/18 Python
跟老齐学Python之大话题小函数(1)
2014/10/10 Python
使用django-suit为django 1.7 admin后台添加模板
2014/11/18 Python
numpy中索引和切片详解
2017/12/15 Python
python opencv3实现人脸识别(windows)
2018/05/25 Python
python3解析库pyquery的深入讲解
2018/06/26 Python
浅谈Python脚本开头及导包注释自动添加方法
2018/10/27 Python
总结Python图形用户界面和游戏开发知识点
2019/05/22 Python
python使用docx模块读写docx文件的方法与docx模块常用方法详解
2020/02/17 Python
Pytorch mask_select 函数的用法详解
2020/02/18 Python
PyCharm Anaconda配置PyQt5开发环境及创建项目的教程详解
2020/03/24 Python
css3 给背景设置渐变色的方法
2019/09/12 HTML / CSS
综合测评自我鉴定
2013/10/08 职场文书
传播学专业毕业生自荐信
2013/11/04 职场文书
致200米运动员广播稿
2014/02/06 职场文书
腾讯广告词
2014/03/19 职场文书
父母对孩子说的话
2014/04/12 职场文书
2014年教育培训工作总结
2014/12/08 职场文书
模范教师事迹材料
2014/12/16 职场文书
总经理岗位职责
2015/02/04 职场文书
行政诉讼答辩状
2015/05/21 职场文书
古诗文之爱国名句(77句)
2019/09/24 职场文书
python神经网络 tf.name_scope 和 tf.variable_scope 的区别
2022/05/04 Python