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 Deque 模块使用详解
Jul 04 Python
Python中zfill()方法的使用教程
May 20 Python
[原创]Python入门教程3. 列表基本操作【定义、运算、常用函数】
Oct 30 Python
Python学习笔记之For循环用法详解
Aug 14 Python
Python实现基于socket的udp传输与接收功能详解
Nov 15 Python
python getopt模块使用实例解析
Dec 18 Python
Pycharm debug调试时带参数过程解析
Feb 03 Python
python实现可下载音乐的音乐播放器
Feb 25 Python
离线状态下在jupyter notebook中使用plotly实例
Apr 24 Python
python 实现分组求和与分组累加求和代码
May 18 Python
用Python制作音乐海报
Jan 26 Python
python之PySide2安装使用及QT Designer UI设计案例教程
Jul 26 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
对Session和Cookie的区分与解释
2007/03/16 PHP
PHP的curl实现get,post和cookie(实例介绍)
2013/06/17 PHP
使用composer命令加载vendor中的第三方类库 的方法
2019/07/09 PHP
thinkphp5框架实现数据库读取的数据转换成json格式示例
2019/10/10 PHP
Javascript 命名空间模式
2013/11/01 Javascript
JavaScrip实现PHP print_r的数功能(三种方法)
2013/11/12 Javascript
jQuery多级弹出菜单插件ZoneMenu
2014/12/18 Javascript
AngularJS整合Springmvc、Spring、Mybatis搭建开发环境
2016/02/25 Javascript
在React框架中实现一些AngularJS中ng指令的例子
2016/03/06 Javascript
微信小程序 wxapp导航 navigator详解
2016/10/31 Javascript
微信开发 JS-SDK 6.0.2 经常遇到问题总结
2016/12/08 Javascript
jQuery电话号码验证实例
2017/01/05 Javascript
JavaScript图片处理与合成总结
2018/03/04 Javascript
解决linux下node.js全局模块找不到的问题
2018/05/15 Javascript
vue使用ElementUI时导航栏默认展开功能的实现
2018/07/04 Javascript
详解node字体压缩插件font-spider的用法
2018/09/28 Javascript
Vue 2.0 侦听器 watch属性代码详解
2019/06/19 Javascript
JQuery中的常用事件、对象属性与使用方法分析
2019/12/23 jQuery
JavaScript代码简化技巧实例解析
2020/09/09 Javascript
[50:54]完美世界DOTA2联赛 GXR vs IO 第三场 11.07
2020/11/10 DOTA
Python实现删除排序数组中重复项的两种方法示例
2019/01/31 Python
让Python脚本暂停执行的几种方法(小结)
2019/07/11 Python
pytorch中的卷积和池化计算方式详解
2020/01/03 Python
python不使用for计算两组、多个矩形两两间的iou方式
2020/01/18 Python
如何基于pythonnet调用halcon脚本
2020/01/20 Python
Python参数传递机制传值和传引用原理详解
2020/05/22 Python
性能服装:HYLETE
2018/08/14 全球购物
泰国王权免税店官方网站:KingPower
2019/03/11 全球购物
Opodo意大利:欧洲市场上领先的在线旅行社
2019/10/24 全球购物
主管职责范文
2013/11/09 职场文书
舞蹈教育学专业推荐信
2013/11/27 职场文书
秋季开学典礼主持词
2014/03/19 职场文书
元宵晚会主持词
2014/03/25 职场文书
2014年小学体育工作总结
2014/12/11 职场文书
uwsgi+nginx代理Django无法访问静态资源的解决
2021/05/10 Servers
解决Laravel使用验证时跳转到首页的问题
2021/11/17 PHP