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 26进制计算实现方法
May 28 Python
Win7下搭建python开发环境图文教程(安装Python、pip、解释器)
May 17 Python
Python 基础知识之字符串处理
Jan 06 Python
python中利用await关键字如何等待Future对象完成详解
Sep 07 Python
Python连接phoenix的方法示例
Sep 29 Python
Python命令行解析模块详解
Feb 01 Python
在Pycharm中自动添加时间日期作者等信息的方法
Jan 16 Python
Python3.5基础之NumPy模块的使用图文与实例详解
Apr 24 Python
python画图把时间作为横坐标的方法
Jul 07 Python
vscode写python时的代码错误提醒和自动格式化的方法
May 07 Python
Windows下PyCharm配置Anaconda环境(超详细教程)
Jul 31 Python
Python提取PDF指定内容并生成新文件
Jun 09 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
星际争霸教主Flash的ID由来:你永远不会知道他之前的ID是www!
2019/01/18 星际争霸
php 进度条实现代码
2009/03/10 PHP
php中使用explode查找某个字符是否存在的方法
2011/07/12 PHP
完美解决PHP中的Cannot modify header information 问题
2013/08/12 PHP
PHP 7.1新特性的汇总介绍
2016/12/16 PHP
PHP简单实现循环链表功能示例
2017/11/10 PHP
在 Laravel 中动态隐藏 API 字段的方法
2019/10/25 PHP
jquery 页面滚动到指定DIV实现代码
2013/09/25 Javascript
JavaScript中的this关键字使用方法总结
2015/03/13 Javascript
基于JavaScript FileReader上传图片显示本地链接
2016/05/27 Javascript
KnockoutJS 3.X API 第四章之数据控制流component绑定
2016/10/10 Javascript
javascript实现的图片预览功能
2017/03/25 Javascript
NodeJs的fs读写删除移动监听
2017/04/28 NodeJs
基于angular实现三级联动的生日插件
2017/05/12 Javascript
利用JS做网页特效_大图轮播(实例讲解)
2017/08/09 Javascript
详解react-native-fs插件的使用以及遇到的坑
2017/09/12 Javascript
vue实现键盘输入支付密码功能
2018/08/18 Javascript
Vue 实现复制功能,不需要任何结构内容直接复制方式
2019/11/09 Javascript
Python实现批量把SVG格式转成png、pdf格式的代码分享
2014/08/21 Python
Python外星人入侵游戏编程完整版
2020/03/30 Python
python实现求解列表中元素的排列和组合问题
2018/03/15 Python
css3实现的下拉菜单效果示例
2014/01/22 HTML / CSS
一款纯css3实现的圆形旋转分享按钮旋转角度可自己调整
2014/09/02 HTML / CSS
html table呈现个人简历以及单元格宽度失效的问题解决
2021/01/22 HTML / CSS
英国珠宝网站Argento: PANDORA、Olivia Burton和Nomination等
2020/05/08 全球购物
EJB的角色和三个对象
2015/12/31 面试题
网游商务专员求职信
2013/10/15 职场文书
双十佳事迹材料
2014/01/29 职场文书
卫生安全检查制度
2014/02/04 职场文书
领导班子四风对照检查材料
2014/09/23 职场文书
群众路线学习笔记范文
2014/11/06 职场文书
2015年幼儿园德育工作总结
2015/05/25 职场文书
庆七一晚会主持词
2015/06/30 职场文书
三八妇女节主持词
2015/07/04 职场文书
初中生活随笔
2015/08/15 职场文书
教你使用Ubuntu搭建DNS服务器
2022/09/23 Servers