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内建函数之raw_input()与input()代码解析
Oct 26 Python
Python编程二分法实现冒泡算法+快速排序代码示例
Jan 15 Python
使用memory_profiler监测python代码运行时内存消耗方法
Dec 03 Python
基于python的ini配置文件操作工具类
Apr 24 Python
浅谈pyqt5在QMainWindow中布局的问题
Jun 21 Python
pytorch+lstm实现的pos示例
Jan 14 Python
Python实现点云投影到平面显示
Jan 18 Python
详解python itertools功能
Feb 07 Python
解决python -m pip install --upgrade pip 升级不成功问题
Mar 05 Python
python TCP包注入方式
May 05 Python
浅谈pytorch中torch.max和F.softmax函数的维度解释
Jun 28 Python
python的launcher用法知识点总结
Aug 07 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_NETWORK_GETADDRESSES: GETADDRINFO FAILED问题解决办法
2014/05/04 PHP
PHP输出英文时间日期的安全方法(RFC 1123格式)
2014/06/13 PHP
PHP 7的一些引人注目的新特性简单介绍
2015/11/08 PHP
WordPress开发中自定义菜单的相关PHP函数使用简介
2016/01/05 PHP
ThinkPHP打水印及设置水印位置的方法
2016/10/14 PHP
(仅IE下有效)关于checkbox 三态
2007/05/12 Javascript
Javascript 文件夹选择框的两种解决方案
2009/07/01 Javascript
JS 自定义带默认值的函数
2011/07/21 Javascript
jQuery处理xml格式的返回数据(实例解析)
2013/11/28 Javascript
手机端网页点击链接触发自动拨打或保存电话的示例代码
2014/08/15 Javascript
jQuery使用slideUp方法实现控制元素缓慢收起
2015/03/27 Javascript
JavaScript获得当前网页来源页面(即上一页)的方法
2015/04/03 Javascript
jQuery实现径向动画菜单效果
2015/07/17 Javascript
详解Vue 事件驱动和依赖追踪
2017/04/22 Javascript
详解node如何让一个端口同时支持https与http
2017/07/04 Javascript
原生javascript AJAX 三级联动的实现代码
2018/05/04 Javascript
element-ui如何防止重复提交的方法步骤
2019/12/09 Javascript
[01:10:02]IG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
详解pyenv下使用python matplotlib模块的问题解决
2018/11/29 Python
Python发展史及网络爬虫
2019/06/19 Python
opencv3/C++ 平面对象识别&透视变换方式
2019/12/11 Python
使用pytorch搭建AlexNet操作(微调预训练模型及手动搭建)
2020/01/18 Python
Python同时迭代多个序列的方法
2020/07/28 Python
AmazeUI框架搭建的方法步骤(图文)
2020/08/17 HTML / CSS
岗位职责定义及内容
2013/11/08 职场文书
银行领导证婚词
2014/01/11 职场文书
希特勒经典演讲稿
2014/05/19 职场文书
物流专业求职信
2014/06/30 职场文书
个人事迹材料范文
2014/12/29 职场文书
2015年医院药剂科工作总结
2015/05/04 职场文书
月考总结与反思
2015/10/22 职场文书
2016三八妇女节慰问信
2015/11/30 职场文书
2016年学生会感恩节活动总结
2016/04/01 职场文书
十大最强妖精系宝可梦,哲尔尼亚斯实力最强,第五被称为大力士
2022/03/18 日漫
MySQL创建管理HASH分区
2022/04/13 MySQL
Java数组详细介绍及相关工具类
2022/04/14 Java/Android