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将文本转换成图片输出的方法
Apr 28 Python
python3 与python2 异常处理的区别与联系
Jun 19 Python
浅谈python字符串方法的简单使用
Jul 18 Python
Python正则表达式实现截取成对括号的方法
Jan 06 Python
python中解析json格式文件的方法示例
May 03 Python
简单实现python数独游戏
Mar 30 Python
python re库的正则表达式入门学习教程
Mar 08 Python
python批量识别图片指定区域文字内容
Apr 30 Python
Django框架视图层URL映射与反向解析实例分析
Jul 29 Python
解决python中的幂函数、指数函数问题
Nov 25 Python
Python命名空间namespace及作用域原理解析
Jun 05 Python
python实现梯度下降算法的实例详解
Aug 17 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 和 MySQL 时区的一点总结
2008/03/26 PHP
php 中文处理函数集合
2008/08/27 PHP
PHP统计二维数组元素个数的方法
2013/11/12 PHP
FireFox中textNode分片的问题
2007/04/10 Javascript
javascript基本语法分析说明
2008/06/15 Javascript
给Function做的OOP扩展
2009/05/07 Javascript
js弹出的对话窗口永远保持居中显示
2012/12/15 Javascript
用jquery的方法制作一个简单的导航栏
2014/06/23 Javascript
jQuery树形插件jquery.simpleTree.js用法分析
2016/09/05 Javascript
easyui中combotree循环获取父节点至根节点并输出路径实现方法
2016/11/10 Javascript
基于JavaScript实现随机颜色输入框
2016/12/10 Javascript
node文件批量重命名的方法示例
2017/10/23 Javascript
Vue中$refs的用法详解
2018/06/24 Javascript
Vue中的作用域CSS和CSS模块的区别
2018/10/09 Javascript
使用vue-cli3新建一个项目并写好基本配置(推荐)
2019/04/24 Javascript
如何用原生js写一个弹窗消息提醒插件
2019/05/24 Javascript
[38:39]完美世界DOTA2联赛循环赛 IO vs GXR BO2第二场 11.04
2020/11/05 DOTA
python实现上传下载文件功能
2020/11/19 Python
Python安装lz4-0.10.1遇到的坑
2018/05/20 Python
Flask核心机制之上下文源码剖析
2018/12/25 Python
在Python 不同级目录之间模块的调用方法
2019/01/19 Python
Python列表原理与用法详解【创建、元素增加、删除、访问、计数、切片、遍历等】
2019/10/30 Python
pytorch点乘与叉乘示例讲解
2019/12/27 Python
python opencv圆、椭圆与任意多边形的绘制实例详解
2020/02/06 Python
Python实现文件压缩和解压的示例代码
2020/08/12 Python
实例讲解使用HTML5 Canvas绘制阴影效果的方法
2016/03/25 HTML / CSS
韩国三星集团旗下时尚品牌官网:SSF SHOP
2016/08/02 全球购物
英国在线购买马术服装:EQUUS
2019/07/12 全球购物
Prototype中如何为一个元素添加一个方法
2014/12/08 面试题
大学生护理专业自荐信
2013/10/03 职场文书
申报职称专业技术个人的自我评价
2013/12/12 职场文书
广告词串烧
2014/03/19 职场文书
节约能源标语
2014/06/17 职场文书
2015年农村党员干部主题教育活动总结
2015/03/25 职场文书
React 并发功能体验(前端的并发模式)
2021/07/01 Javascript
Python字符串常规操作小结
2022/04/03 Python