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中dict与set的使用
Aug 10 Python
Python实现简单多线程任务队列
Feb 27 Python
Python解析json文件相关知识学习
Mar 01 Python
Python加密方法小结【md5,base64,sha1】
Jul 13 Python
Python实现学校管理系统
Jan 11 Python
Ubuntu下Python2与Python3的共存问题
Oct 31 Python
python numpy元素的区间查找方法
Nov 14 Python
解决python ogr shp字段写入中文乱码的问题
Dec 31 Python
详解python校验SQL脚本命名规则
Mar 22 Python
Python如何优雅获取本机IP方法
Nov 10 Python
Python pandas如何向excel添加数据
May 22 Python
解决IDEA翻译插件Translation报错更新TTK失败不能使用
Apr 24 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
PHP6 先修班 JSON实例代码
2008/08/23 PHP
php Sql Server连接失败问题及解决办法
2009/08/07 PHP
PHP源码之explode使用说明
2011/08/05 PHP
PHP flush()与ob_flush()的区别详解
2013/06/03 PHP
one.php 多项目、函数库、类库 统一为一个版本的方法
2020/08/24 PHP
Jquery自定义button按钮的几种方法
2014/06/11 Javascript
JavaScript列表框listbox全选和反选的实现方法
2015/03/18 Javascript
javascript实现对表格元素进行排序操作
2015/11/18 Javascript
AngularJS上拉加载问题解决方法
2016/05/23 Javascript
jQuery hover事件简单实现同时绑定2个方法
2016/06/07 Javascript
JS递归遍历对象获得Value值方法技巧
2016/06/14 Javascript
JavaScript获取服务器时间的方法详解
2016/12/11 Javascript
vue 多入口文件搭建 vue多页面搭建的实例讲解
2018/03/12 Javascript
vue .sync修饰符的使用详解
2018/06/15 Javascript
js正则表达式校验指定字符串的方法
2018/07/23 Javascript
详解微信小程序-获取用户session_key,openid,unionid - 后端为nodejs
2019/04/29 NodeJs
详细讲解如何创建, 发布自己的 Vue UI 组件库
2019/05/29 Javascript
RxJS的入门指引和初步应用
2019/06/15 Javascript
JS数组reduce()方法原理及使用技巧解析
2020/07/14 Javascript
JS访问对象两种方式区别解析
2020/08/29 Javascript
Python模仿POST提交HTTP数据及使用Cookie值的方法
2014/11/10 Python
Python复制目录结构脚本代码分享
2015/03/06 Python
K-means聚类算法介绍与利用python实现的代码示例
2017/11/13 Python
Python3.5 创建文件的简单实例
2018/04/26 Python
python 实现图片上传接口开发 并生成可以访问的图片url
2019/12/18 Python
Python读取分割压缩TXT文本文件实例
2020/02/14 Python
python如何建立全零数组
2020/07/19 Python
CSS3标注引用的出处和来源的方法
2020/02/25 HTML / CSS
eBay意大利购物网站:eBay.it
2019/09/04 全球购物
岗位职责的含义
2013/11/17 职场文书
《我要的是葫芦》教学反思
2014/02/23 职场文书
工作决心书范文
2014/03/11 职场文书
商场开业庆典策划方案
2014/06/02 职场文书
社区矫正工作方案
2014/06/04 职场文书
Vue中插槽slot的使用方法与应用场景详析
2021/06/08 Vue.js
JavaScript实现优先级队列
2021/12/06 Javascript