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中is与==判断的区别
Mar 28 Python
Python 文件处理注意事项总结
Apr 10 Python
python学习笔记--将python源文件打包成exe文件(pyinstaller)
May 26 Python
对numpy.append()里的axis的用法详解
Jun 28 Python
docker-py 用Python调用Docker接口的方法
Aug 30 Python
Python实现报警信息实时发送至邮箱功能(实例代码)
Nov 11 Python
Pandas时间序列重采样(resample)方法中closed、label的作用详解
Dec 10 Python
Python hmac模块使用实例解析
Dec 24 Python
python GUI库图形界面开发之PyQt5信号与槽机制、自定义信号基础介绍
Feb 25 Python
Python求两个字符串最长公共子序列代码实例
Mar 05 Python
Pytorch生成随机数Tensor的方法汇总
Sep 09 Python
Python数据可视化常用4大绘图库原理详解
Oct 23 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的宝库目录--PEAR
2006/10/09 PHP
php的dl函数用法实例
2014/11/06 PHP
php注册和登录界面的实现案例(推荐)
2016/10/24 PHP
PHP递归统计系统中代码行数
2019/09/19 PHP
js读写cookie实现一个底部广告浮层效果的两种方法
2013/12/29 Javascript
jQuery 回车事件enter使用示例
2014/02/18 Javascript
jquery通过visible来判断标签是否显示或隐藏
2014/05/08 Javascript
avalon js实现仿google plus图片多张拖动排序附源码下载
2015/09/24 Javascript
jQuery定义插件的方法
2015/12/18 Javascript
基于jQuery实现滚动刷新效果
2017/01/09 Javascript
jQuery Pagination分页插件_动力节点Java学院整理
2017/07/17 jQuery
JS如何获取地址栏的参数实例讲解
2018/10/06 Javascript
函数式编程入门实践(一)
2019/04/20 Javascript
layui 富文本赋值,取值,取纯文本值的实例
2019/09/18 Javascript
原生js实现点击轮播切换图片
2020/02/11 Javascript
基于Electron实现桌面应用开发代码实例
2020/07/07 Javascript
Vue路由权限控制解析
2020/11/09 Javascript
[02:19]DOTA2上海特级锦标赛 观赛指南 Spectator Guide
2016/02/04 DOTA
[42:00]完美世界DOTA2联赛PWL S3 Phoenix vs INK ICE 第一场 12.13
2020/12/17 DOTA
Python(Django)项目与Apache的管理交互的方法
2018/05/16 Python
python实现两个经纬度点之间的距离和方位角的方法
2019/07/05 Python
python实现点击按钮修改数据的方法
2019/07/17 Python
使用python将excel数据导入数据库过程详解
2019/08/27 Python
用CSS3写的模仿iPhone中的返回按钮
2015/04/04 HTML / CSS
CSS3 display知识详解
2015/11/25 HTML / CSS
CSS3 transition 实现通知消息轮播条
2020/10/14 HTML / CSS
英国顶级家庭折扣店:The Works
2017/09/06 全球购物
英国森林假期:Forest Holidays
2021/01/01 全球购物
毕业生大学生活自我总结
2014/01/31 职场文书
2014三八妇女节活动总结范文四篇
2014/03/09 职场文书
民生工程实施方案
2014/03/22 职场文书
应届毕业生自荐书
2014/06/18 职场文书
乡镇组织委员个人整改措施
2014/09/16 职场文书
政协会议宣传标语
2014/10/09 职场文书
2015年医院工作总结范文
2015/04/09 职场文书
2015小学语文教师个人工作总结
2015/05/20 职场文书