python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配

 更新时间:2020年02月29日 16:18:11   作者:诸葛老刘  
今天小编就为大家分享一篇python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

已知一个元素,在一个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中copy()与deepcopy()的区别小结

    python中copy()与deepcopy()的区别小结

    接触python有一段时间了,一直没有系统的学习过,也对copy,deepcoy傻傻的分不清,故抽出时间来理一下。 下面这篇文章主要给大家介绍了关于python中copy()与deepcopy()的区别的相关资料,需要的朋友可以参考下
    2018-08-08
  • Python数据分析中常见统计方法详解

    Python数据分析中常见统计方法详解

    数据分析是现代社会中不可或缺的一部分,通过对数据的统计和分析,我们可以得出有用的信息和见解,本文将介绍在 Python 中常见的数据统计方法,希望对大家有所帮助
    2024-02-02
  • 详解在Python中使用Torchmoji将文本转换为表情符号

    详解在Python中使用Torchmoji将文本转换为表情符号

    这篇文章主要介绍了详解在Python中使用Torchmoji将文本转换为表情符号,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • python使用xauth方式登录饭否网然后发消息

    python使用xauth方式登录饭否网然后发消息

    这篇文章主要介绍了python使用xauth方式登录饭否网然后发消息示例,需要的朋友可以参考下
    2014-04-04
  • 解决Tensorflow sess.run导致的内存溢出问题

    解决Tensorflow sess.run导致的内存溢出问题

    今天小编就为大家分享一篇解决Tensorflow sess.run导致的内存溢出问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Python如何使用BeautifulSoup爬取网页信息

    Python如何使用BeautifulSoup爬取网页信息

    这篇文章主要介绍了Python如何使用BeautifulSoup爬取网页信息,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • numpy np.newaxis 的实用分享

    numpy np.newaxis 的实用分享

    今天小编就为大家分享一篇numpy np.newaxis 的实用分享,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • Python Http请求json解析库用法解析

    Python Http请求json解析库用法解析

    这篇文章主要介绍了Python Http请求json解析库用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • python制作websocket服务器实例分享

    python制作websocket服务器实例分享

    websocket是一个浏览器和服务器通信的新的协议,websocket则和一般的socket一样,使得浏览器和服务器建立了一个双工的通道。今天我们就来详细探讨下使用Python实现websocket服务器的具体方法
    2016-11-11
  • Python pandas轴旋转stack和unstack的使用说明

    Python pandas轴旋转stack和unstack的使用说明

    这篇文章主要介绍了Python pandas轴旋转stack和unstack的使用说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03

最新评论